在上一篇中我们安装了Solr,并可以访问,在这一篇中,主要介绍在网页上如果操作solr的后台管理界面。
主要介绍 一些solr版本,服务启动时间 ,系统内存等信息
主要介绍了一些启动日志信息
配置管理solrcore的功能。每个solr服务可以有多个solrcore每个solrcore是独立的索引库。类似于mysql的数据库。 添加solrcore: 第一步:把collection1复制一份改名为collection2 第二步:修改collection2下的core.properties文件,修改name=collection2 第三步:重新启动tomcat
选择collection1 ,下面会出现一系列功能,现在介绍一下
查看某个域的分析效果(在Schema.xml文件中,solr已经为我们定义了许多的默认域,我们可以在此基础上进行扩展) 把数据库中的数据批量导入到索引库中使用的功能。需要手工配置。(后面详细分析)
Documents :实现对索引库的增删改操作。 增加:id这个域是必须的 举例 这是用json格式进行的添加操作,可以放置多个域,点击下面的 提交按钮即可添加成功。
修改和添加时一个功能,只要id相同,就可以完成修改,原理是先删除原来的,在添加一个新的
删除:
这是根据id删除
这是根据查询的语法删除,*:*时删除所有的意思,可以替换为 任意的 域名:域值 如 id:a12、name:猎豹 等。
索引查询功能
上边大概介绍了solr提供的管理界面的功能,下面重点分析一下
E:\solr\solrhome\collection1\conf 下即solrhome中 schema.xml 配置文件
Name:动态域的名称的表达式,域的名称只需要和表达式向匹配就可以使用。 Type:域的类型 Indexed:是否索引 Stored:是否存储 multiValued:是否多值。
文档的唯一id,每个document必须有一个id域,相当于数据库中表的主键。
复制域,功能就是在添加文档的时候自动的把源域的内容复制到目标域。可以把目标域作为默认搜索域可以提高查询的性能。 例如,可以把product_name 域 和product_description域 同时指向 product_keywords 域,这样搜索时 就可以指定 搜索product_keywords 域效果 和同时搜索 product_name 域 和product_description域两个域一样。
<copyField source="product_name" dest="product_keywords"/> <copyField source="product_description" dest="product_keywords"/>域类型的定义。 Name:域的名称 Class:对应的java 的类,是对应的域的实际类型。 可以定义一个fieldtype使用中文分析器这样就可以满足业务需求。Class必须是class=”solr.TextField”
配置中文分词器 需要自定义一个fieldType,并且class是solr.TextField。中文分析器使用的是IK-Analyzer。 步骤: 第一步:把IKAnalyzer2012FF_u1.jar添加到solr工程的lib文件夹下。 第二步:把配置文件和自定义词典和停用词词典添加到solr工程的classpath下可以添加到/WEB-INF/classes目录下。注意词典的字符集是utf-8。
注意把IKAnalyzer.cfg.xml 中的注释打开 第三步:在schema.xml中添加一个自定义的fieldType,可以添加到最后面。
<fieldType name="text_ik" class="solr.TextField"> <analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/> </fieldType>第四步:定义field,type使用text_ik
<!--IKAnalyzer Field--> <field name="title_ik" type="text_ik" indexed="true" stored="true" /> <field name="content_ik" type="text_ik" indexed="true" stored="false" multiValued="true"/>