Solr中的常规搜索查询

mnemlml8  于 2022-10-21  发布在  Solr
关注(0)|答案(1)|浏览(178)

我尝试在Solr 9.0到中使用
q=术语
(例如。http://localhost:8983/solr/windowstest/select?indent=true&q.op=OR&q=yelp).
我注意到Solr的旧版本能够处理这样的请求,但现在我只能通过添加OR来搜索该词的所有字段
q=id:yelp或主题:yelp或主体:yeep
(例如。http://localhost:8983/solr/windowstest/select?indent=true&q.op=OR&q=id%3A
yelp*%20OR%20subject%3Ayelp%20OR%20body%3Ayelp)。
有没有一种方法不必指示字段?

oxcyiej7

oxcyiej71#

没有“搜索所有字段”的设置;然而,通常要做的是将一个字段作为所有字段的copyField目标。您可以通过定义一个catch-all字段(默认为_text_,然后配置<copyField src="*" dest="_text_">-将所有字段的内容复制到_text_中。
然后,您可以使用查询中的df参数设置默认搜索字段(即,如果没有给定字段名)-默认字段。

http://localhost:8983/solr/windowstest/selectq.op=OR&q=yelp&df=_text_

如果要将其设置为默认值,请将其配置为特定请求处理程序下solrconfig.xml中的默认参数:

<requestHandler name="/select" class="solr.SearchHandler">
  <lst name="defaults">
    <str name="df">_text_</str>
    <int name="rows">10</int>
  </lst>
</requestHandler>

..或by using initparams

<initParams path="/update/**,/query,/select,/tvrh,/elevate,/spell">
  <lst name="defaults">
    <str name="df">_text_</str>
  </lst>
</initParams>

相关问题