SolrSolr作为一个Java开发的高性能,用于对查询性能进行优化的全文搜索服务器,它的使用需要配置业务域:
第一步是添加中文分析器
上传中文分析器并解压,复制jar包到solr的lib文件夹下:
cp IKAnalyzer2012FF_u1.jar /usr/local/solr/tomcat/webapps/solr/WEB-INF/lib/
复制配置文件
cp ext_stopword.dic IKAnalyzer.cfg.xml mydict.dic /usr/local/solr/tomcat/webapps/solr/WEB-INF/classes
修改schema.xml文件配置业务域,schema.xml 是用来定义索引数据中的域的,包括域名称,域类型,域是否索引,是否分词
filedType配置一个中文分词器 type是类型 index是是否需要索引,stored:表示是否需要把值域存储到硬盘上。class必须用textFiled,,只有textField才能自定义分词器。
copyField复制域:向域添加数据的时候自动复制到keywords上,优化搜索,这样就可以搜索关键词了。复制域即表示把某个域的值复制到一个目标域上面(按我的理解是添加的时候就复制),这里关键词就是复制域,效果就是可以通过关键词搜索
multiValued:是否为多值类型,SOLR允许配置多个数据源字段存储到一个搜索字段中,将标题的多个字段存储到了关键词里边。关键词也配置了分词器,有了这个配置就能实现标题分成多个关键词,都可以查。
配置完成就可以使用solrJ将数据库中的数据导入到索引库,导入索引库成功
常用参数:
q - 查询字符串,必须的,默认*:*。
fl - 指定返回那些字段内容,用逗号或空格分隔多个。
只显示标题和价格,每页显示5条
start - 返回第一条记录在完整找到结果中的偏移位置,0开始。
rows - 指定返回结果最多有多少条记录,配合start来实现分页。
sort - 排序,示例:(降序:item_pricedesc, 升序 item_price asc) 。
升序排列:
wt - (writer type)指定输出格式,可以有 xml, json, php, phps。
fq - (filter query )过虑查询,配合q使用,例如item_price:[1100 TO *]
只查询价格在1100以上的: