SOLR 8.2 使用 DF 跨字段搜索



我有一个包含 5 个字段的集合,例如 a,b,c,d,e.目前它的工作方式类似于 q=a:value,但我想跨字段搜索(如 q=value(

我在solrConfig中尝试了以下内容.xml但没有运气。欣赏任何指示

<initParams path="/update/**,/query,/select,/tvrh,/elevate,/spell,/browse">
<lst name="defaults">
<str name="df">text1</str>
</lst>
<copyField source="a" dest="text1" indexed="true" stored="true"/>
<copyField source="b" dest="text1" indexed="true" stored="true"/>
<copyField source="c" dest="text1" indexed="true" stored="true"/>
<copyField source="d" dest="text1" indexed="true" stored="true"/>
<copyField source="f" dest="text1" indexed="true" stored="true"/>
</initParams>
<fields>
<copyField source="a" dest="text1" indexed="true" stored="true"/>
<copyField source="b" dest="text1" indexed="true" stored="true"/>
<copyField source="c" dest="text1" indexed="true" stored="true"/>
<copyField source="d" dest="text1" indexed="true" stored="true"/>
<copyField source="f" dest="text1" indexed="true" stored="true"/>
</fields>

使用edismax查询分析器并提供qf参数。它还可以让您以不同的方式提高每个领域的点击率。qf=a^5 ba场的命中率将是b场命中率的五倍。

由于字段规范现在位于qf参数中,因此q参数可以用作更简单的用户类型查询 -q=foo bar

您可以使用名为"text1"的复制字段,将所有可搜索字段复制到此字段中,并将其指定为默认搜索字段。

<requestHandler name="/select" class="solr.SearchHandler">
<!-- default values for query parameters can be specified, these
will be overridden by parameters in the request
-->
<lst name="defaults">
<str name="echoParams">explicit</str>
<int name="rows">10</int>
<str name="df">text1</str>

schema.xml中添加字段

<fields> 
<field name="a" type="string" indexed="true" stored="true" required="true" /> 
<field name="b" type="string" indexed="true" stored="true" required="true" /> 
.
.
<field name="text1" type="text" indexed="true" stored="false" multiValued="true" /> 
</fields>

您可以将要复制的字段添加到复制字段中,如下所示:

<copyField source="a" dest="text1"/>
<copyField source="b" dest="text1"/>
...
<copyField source="e" dest="text1"/>

最新更新