Apache Solr在整个集合中搜索一个字符串,但未指定字段名称

问题描述 投票:0回答:2

我正在寻找一种在整个集合中搜索给定字符串的方法。我提到了Correct use case of String parameter in SetQuery function of SolrQuery?

提供的示例适用于以下情形:query.setQuery("fieldName":"value"),但不适用于query.setQuery("*value*")。就我而言,我不想提供字段名称,并且无论具有此值的字段名称,它都应该搜索整个集合。这种情况还有其他方法吗?

java solr solrj
2个回答
1
投票

"text"中创建一个名为schema.xml的复制字段,并将所有字段复制到其中。

<copyField source="field1" dest="text"/>

为了在/ query请求处理程序下或IntParams下的solrconfig.xml文件中设置默认搜索字段。

<requestHandler name="/query" class="solr.SearchHandler">
   <lst name="defaults">
     <str name="echoParams">explicit</str>
     <str name="wt">json</str>
     <str name="indent">true</str>
     <str name="df">text</str>
   </lst>
</requestHandler>

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

0
投票

感谢您提供信息,我在solr 7.7.2版本中尝试了相同的方法。为所有字段创建了副本字段,并将其分配给dest =“ text”(文本类型的字段)。但是它没有任何输出。它仅适用于df = fieldName的一个字段。

它具有托管架构,该架构会在索引编制后自动覆盖更改,请让我知道会出现什么问题。

© www.soinside.com 2019 - 2024. All rights reserved.