solr中的query语句怎么定制化

基本query如何写,都是参考guide中的例子。
比如:https://lucene.apache.org/solr/guide/8_5/the-standard-query-parser.html
以下红框中的内容都是。

但是所有的query,最后其实都是归结到QParserPlugin的实现类的。也就是看这些plugin类的描述,以及它们支持的query方式,可以知道solr全部的query类型。
这是QParserPlugin的实现类

它们是否被默认启用,是在QParserPlugin的static块中。

如果没有在这个列表中的QParserPlugin需要启用,则必须将自己实现的jar放到solr的classpath下,然后在solrconfig.xml中添加以下行(指定name和实现的plugin类),然后重启solr。

<queryParser name="test" class="com.test.TempTestQParserPlugin"/>

以最常见的LuceneQParserPlugin为例,它的注册name是"lucene",所以它的query都是这样写的:

{!lucene XXX}XXX

而至于它具体支持的local Params,可以参考它返回的具体QParser实现类:LuceneQParser.parse(),在这个函数里,你可以查看到它去获取了哪些参数,比如df,op等等。

posted @ 2020-11-09 13:52  爪哇国的小蚂蚁  阅读(139)  评论(0)    收藏  举报