如果想让 solr 有更加强大的功能或在查询时做一些特别的处理。可以在 solrconfig.xml 里注册自定义的 QueryParser(查询解析器),这是 solr 1.3 的新功能(插件功能),如:
-
<
queryParser
name
=
"mylucene"
class
=
"org.apache.solr.search.MyQParserPlugin"
/>
query parser 插件时,要先了解下 solr 这方面的结构,下面的QueryParserPlugin 相关类的类图:
写自己的 query parser 插件,基本需要写加个类,MyQParserPlugin、MyQParser、MySolrQueryParser分别扩展QParserPlugin、QParser、SolrQueryParser。
默认情况:solr 是用 OldLuceneQParser 来解析查询,solr 源码中 OldLuceneQParser与LuceneQParser是LuceneQParserPlugin内部类。
扩展QParser时,可以复制 OldLuceneQParser 与 LuceneQParser,然后稍加改一个(把
SolrQueryParser 改为
MySolrQueryParser,还有一些访问属性相关的调整),然后你可以在MySolrQueryParser “胡作非为”,与可以在
MyQParser 查询前做一些特别的处理。
最后打包,个人用这三个类独立打包成my-qparser.jar 放到 solr.home/lib目录下,如果没有手动建一个。
写好了扩展怎么用呢?solr 有一个 defType的参数,比如:你注册自己的QParserPlugin后,如名为mylucene,那么
defType=mylucene。当然还可以这样:在q参数值前面加{!mylucene}。个人认为用defType比较好,这样其它调用的地方不用
改,做到透明——在 standard requestHandler 里加默认的defType参数。
- 大小: 10.7 KB
分享到:
相关推荐
通过solr实现电商搜索排名打分,排序,可自定义打分规则
基于solr4版本,jdk6。 solr functionquery函数查询功能强大,但字符串函数比较缺乏,该示例是contain示例,表示值中包含传入的字符串即返回1 否则返回0,可用于solr查询中如果某个字段包含动态传入的值在排名优先。...
自定义的Solr 分词器,可以通过竖线"|"来分词,可以在博客http://blog.csdn.net/jiangchao858/article/details/68954044看到生成过程与使用步骤。
solr评分 solr自定义评分组件demo.zip
mmseg4j-solr-2.3.0.jar 支持 solr5.x 版本以上 分词器本身并未做升级还是mmseg4j-core-1.10.0 和 mmseg4j-analysis-1.9.1.jar为了方便也一并上传
solr使用和原理 简单明了的介绍了solr的使用和原理,及其部署方式,适合初学者第一次部署
Solr(Cloudera)使用手册
lucene,solr的使用lucene,solr的使用lucene,solr的使用lucene,solr的使用lucene,solr的使用lucene,solr的使用lucene,solr的使用lucene,solr的使用lucene,solr的使用lucene,solr的使用lucene,solr的使用
solr的安装使用步骤
solr安装和使用
说明solr-5.3.1项目原始代码。实现自己定义的servlet和QueryParse实现上传词库到ik分词的词库文件中
Solr 3.*pdf使用手册,欢迎下载
Solr的基础知识,笔者翻阅了很多网上的资料,自认为比较全面,涉及到Solr的安装使用与SolrJ的开发。
solr定时索引使用到的定时调度器jar包, 可使用于solr7.x版本
solr.warsolr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包...
solr 使用官方指南,solr 使用官方指南solr 使用官方指南solr 使用官方指南
简单的描绘了使用easynet开发solr客户端,包括添加,修改,删除,查询功能。
centos7 环境 安装docker 并在docker 中部署solr 并使用