solr 创建core
直接使用 solr create -c coreName 创建core,会在server文件夹下的solr文件夹下得到新创建的core
配置新建的core中,的conf文件夹下的solrconfig.xml文件,在新建的core中,的conf文件夹啊下,在solrconfig.xml文件后面加入
<!--引入DataImportHandler类的jar--> <lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-dataimporthandler-.*\.jar" /> <requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler"> <lst name="defaults"> <str name="config">db-data-config.xml</str> </lst> </requestHandler>
这里的配置表示mycore的数据导入使用solr的DataImportHandler,而这个handler所在的jar位于E:solr-7.4.0solr-7.4.0dist目录里面,解压的时候就有,通过配置lib节点来进行引入。
配置managed-schema文件,与前面的solrconfig.xml文件在同一个目录下
<!--分词器--> <fieldType name="content_ik" class="solr.TextField"> <analyzer type="index" isMaxWordLength="false" class="org.wltea.analyzer.lucene.IKAnalyzer"/> <analyzer type="query" isMaxWordLength="true" class="org.wltea.analyzer.lucene.IKAnalyzer"/> </fieldType> <!--添加对应于数据库字段的field--> <!--配置从数据库导入到sorl中的数据的字段内容,所以每次要从数据库导入什么就需要配置什么--> <!--name:指定域的名称,indexed:是否索引,type:指定域的类型,stored:是否存储,required:是否必须--> <field name="product_name" type="string" indexed="true" stored="true"/> <field name="product_price" type="string" indexed="true" stored="true"/> <field name="product_description" type="content_ik" indexed="true" stored="true" multiValued="false" /> <field name="product_picture" type="string" indexed="true" stored="true"/> <field name="product_catalog_name" type="content_ik" indexed="true" stored="true" multiValued="false" /> <!--设置部分字段搜索,当搜索条件为product_keywords时,会搜索以下所有字段匹配数据,--> <!--multiValued:是否多值,比如商品信息中,一个商品有多张图片,一个Field想存储多个值的话,必须将multiValued设置为true--> <field name="product_keywords" type="content_ik" indexed="true" stored="true" multiValued="true" /> <copyField source="product_name" dest="product_keywords" /> <copyField source="product_description" dest="product_keywords" /> <copyField source="product_price" dest="product_keywords"/> <copyField source="product_catalog_name" dest="product_keywords"/>
需要注意的是,在设置了stored="ture",的时候,会将数据保存到solr中,所以,即使设置indexed="false",不建立索引,在搜索的时候,也能搜索到。
配置db-data-config.xml,这个是关联数据库的,可以将数据库中的数据,保存到solr中,要加mysql的jar包
<?xml version="1.0" encoding="UTF-8" ?> <dataConfig> <dataSource driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/solr?useSSL=false" user="root" password="123456"/> <document> <entity name="product" query="SELECT * FROM product"> <field column="pid" name="id" /> <field column="name" name="product_name" /> <field column="catalog_name" name="product_catalog_name" /> <field column="price" name="product_price" /> <field column="description" name="product_description" /> <field column="picture" name="product_picture" /> </entity> </document> </dataConfig>
三个文件的位置:
最后测试下,
导入数据库中的数据
搜索
可以成功得到数据库的数据,以及搜索到数据
在配置core中的文件的时候,一开始,我是直接复制的solr{home}exampleexample-DIHsolrdb下的文件
然后进行的配置。其他一切都正常,但是在搜索单个字符的时候,会搜索不到
具体不知道是什么原因
因为是新人,刚开始接触solr,所以还有非常多不懂的,基本上都是根据网上的资料来完成的,如果有问题麻烦各位大大帮忙指出来,感谢感谢