初试全文搜索solr
2018-07-18 本文已影响0人
我真的是昵称啊
install
download && start
cd /download
wget http://mirrors.shuosc.org/apache/lucene/solr/7.4.0/solr-7.4.0.tgz
tar -zxvf solr-7.4.0.tgz
mv /download/solr-7.4.0 /usr/local/
cd /usr/local/solr-7.4.0/bin
./solr start
image.png
slor dashboard
访问 host:8983 eg :193.168.10.12:8983 dashboard success
image.png
create core
image.png点击 Add Core:在没有config的情况下会报错 ,先将默认配置复制一份;填写core的名字和文件夹名字同步
cd /usr/local/solr-7.4.0/server/solr/configsets/_default/
cp -r conf /usr/local/solr-7.4.0/server/solr/your_core_name/
不出意外,create success
solr config
了解solrconfig.xml && managed-schema
solr 最主要的配置文件就是上面提到过的solrconfig.xml 以及managed-schema,要对这两个文件有一定的了解,尤其是managed-schema ,才能真正的把solr应用到业务中。
详细介绍见: https://blog.csdn.net/vtopqx/article/details/73224510
solr 最主要的配置文件就是上面提到过的solrconfig.xml 以及managed-schema,要对这两个文件有一定的了解,尤其是managed-schema ,才能真正的把solr应用到业务中。
- solrconfig.xml , solrconfig.xml配置文件主要定义了solr的一些处理规则,包括索引数据的存放位置,更新,删除,查询的一些规则配置。相当于是基础配置文件。
- managed-schema是在使用solr建立core时的配置(core连接配置和索引库),solr根据它确定如何对文档建立索引到索引库中,每个core在建立前都需要设计好managed-schema。
project begin
install jars (mysql)
- 需要下载三个jar包 ,放于solr-7.4.0/server/solr-webapp/webapp/WEB-INF/lib (对应你的文件位置)
- repository url:
https://mvnrepository.com/ - mysql-connector-java:
http://central.maven.org/maven2/mysql/mysql-connector-java/8.0.11/mysql-connector-java-8.0.11.jar - solr-dataimporthandler:
http://central.maven.org/maven2/org/apache/solr/solr-dataimporthandler/7.4.0/solr-dataimporthandler-7.4.0.jar - solr-dataimporthandler-extras:
http://central.maven.org/maven2/org/apache/solr/solr-dataimporthandler-extras/7.4.0/solr-dataimporthandler-extras-7.4.0.jar
wget -P /home/vagrant/download/jars/ http://central.maven.org/maven2/mysql/mysql-connector-java/8.0.11/mysql-connector-java-8.0.11.jar
cp /home/vagrant/download/jars/mysql-connector-java-8.0.11.jar /usr/local/solr-7.4.0/server/solr-webapp/webapp/WEB-INF/lib/
configuration
- 找到新建的 core 下的solrconfig.xml文件(solrconfig.xml 文件所在目录是: solr\server\solr\your_core\conf),新建requestHandler
<requestHandler name="/dataimport"
class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">data-config.xml</str>
</lst>
</requestHandler>
- solrconfig.xml同级目录下创建data-config.xml
cd /usr/local/solr-7.4.0/server/solr/your_core/conf/
vim data-config.xml
<dataConfig>
<dataSource type="JdbcDataSource"
driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://127.0.01:3306/solr-test1-db"
user="homestead"
password="secret" />
<document>
<entity name="solr_test1_search_machine" transformer="DateFormatTransformer" query="SELECT id ,category_id, name FROM machine WHERE category_id = ${dataimporter.request.category_id}">
</entity>
</document>
</dataConfig>
dataSource:
#entity --代表数据实体,column--代表数据库表字段,name--代表solr中字段名 query--代表sql
#(注意:创建这个文件的时候第一行不能有空格或者空行,否则报错)
query="SELECT id ,category_id, name FROM machine WHERE category_id = ${dataimporter.request.category_id}"
eg:
<entity name="person" query="select * from user">
<field column="ID" name="id" />
<field column="name" name="name" />
<field column="passward" name="passward" />
</entity>
- data-config.xml配置完成之后,需要配置managed-schema ~~~~~~~~
手动修改 managed-schema 文件
使用 solr dashboard
restart
/usr/local/solr-7.4.0/bin/solr stop -all
/usr/local/solr-7.4.0/bin/solr start -force
import data from database
image.png在不使用auto-refresh status 的情况下,执行 execute显示indexing ,但是已经completed: 因为本次使用的使用sql是 SELECT id ,category_id, name FROM machine WHERE category_id = ${dataimporter.request.category_id} 所以在Custom Paramters写入where条件:category_id=2
go search
q=column:XXX and|or column:XXX