solr是apache开源的搜索引擎,底层基于lucene,将lucene难以使用的api,通过封装,为用户提供方便的接口。solr国内下载地址:https://mirrors.cnnic.cn/apache/lucene/solr/,这里介绍windows下solr5.5.5的使用,solr5.x开始,内部集成了jetty,因此不需要额外的tomcat配合启动,这里需要安装jdk1.6+,windows下的jdk安装很简单,这里不再赘述,安装完成配置环境变量JAVA_HOME,CLASSPATH,PATH。
下载解压,solr5.5.5启动solr使用bin目录下的solr命令,solr start,停止实例:solr stop -all
可以通过solr status查看solr运行状态
浏览器中访问http://localhost:8983/solr/,可以看到solr的控制台。
solr控制台中可以看到solr的版本,jre环境等,solr是搜索引擎,让他工作需要先创建索引,然后根据条件查询。
先创建一个solr的核心jcg
core创建成功之后,会在server/solr目录下生成名为jcg的文件夹,这就是我们创建的jcg core的配置,jcg目录下有两个文件夹和一个文件,如下图所示。
然后在solr控制台就可以看到jcg了。
我们根据solr提供的示例,通过设置一个schema,然后导入books.csv(example/exampledocs文件夹下)文件,产生索引,然后重启solr,利用api查询。
books.csv文件的内容:后续我们会根据这些内容进行查询
1、修改server/solr/jcg/conf/manage-schema,添加如下配置
这些配置对应books.csv文件中的一些字段field: name:名称,随便定义,在查询的时候根据定义的名称来查询。 type:类型 indexed:是否做索引 stored:是否存储
这里我们只配置了部分字段cat,name,price,inStock,author,像series_t,sequence_i,genre_s,这些字段没有配置,这些配置在manage-schema中有默认的配置,他们就是根据字段后缀来做索引,这些字段就称为动态属性字段,每一个后缀对应可以有多个这样的动态属性,但是字段类型需要保持和定义时一致。部分动态属性定义如下:
2、停止solr实例,并重新开启。
3、进入example/exampledocs文件夹,导入books.csv
导入books.csv文件,使用如下命令
java -Dtype=text/csv -Durl=http://localhost:8389/solr/jcg/update -jar post.jar books.csv
运行结果如下:
这样创建索引的过程就完成了。
4、查询,这里支持精确查询还支持模糊查询,还支持根据其他字段查询fq:filter query
先看一个通配符查询,按照名称中带有of的查询,查询出四个结果。
根据其他字段查询q=*&fq=price:[0 TO 6],价格在6元以下的书,查出两本,均是5.99元的。
这里介绍了solr基本的使用情况,实际中的用法远远比这复杂。但是基本思路还是这样,创建core,配置schema,导入数据,query。