如何搜索SOLR中包含关键字的所有字段,。?
例如,我发现搜索的关键词是:“篮球”。什么查询可以获取包含“basketball”的所有字段,。?如何搜索SOLR中包含关键字的所有字段,。?,solr,field,Solr,Field,例如,我发现搜索的关键词是:“篮球”。什么查询可以获取包含“basketball”的所有字段,。? 我尝试过使用*:basketball,但它不起作用。您需要使用一个查询解析器,它能够将令牌分派到多个字段,例如(e)dismax。例如,如果您有两个字段field1和field2:http://solr/select?q={!demax}篮球&qf=field1^1 field2^1 有关dismax配置的更多信息,请参阅。schema.xml定义默认搜索字段- <defaultSearch
我尝试过使用*:basketball,但它不起作用。您需要使用一个查询解析器,它能够将令牌分派到多个字段,例如(e)dismax。例如,如果您有两个字段
field1
和field2
:http://solr/select?q={!demax}篮球&qf=field1^1 field2^1
有关dismax配置的更多信息,请参阅。schema.xml定义默认搜索字段-
<defaultSearchField>text</defaultSearchField>
文本
您可以将所有字段复制到此默认搜索字段
<copyField source="field1" dest="text"/>
<copyField source="field2" dest="text"/>
<copyField source="field3" dest="text"/>
和queryq=basketball
应该可以工作。默认搜索字段(从3.6开始)现在在solrconfig.xml中定义
e、 g.在Solr configsets目录附带的solrconfig.xml中,您将看到如下内容
<initParams path="/update/**,/query,/select,/tvrh,/elevate,/spell">
<lst name="defaults">
<str name="df">allText</str>
</lst>
</initParams>
全文
您可以将
allText
更改为yourDefaultSearchFieldName
如果是这样,它仍然必须指定搜索右侧的字段,。?字符^1是什么意思?是的,您需要指定每个字段。“^”字符使您能够为字段赋予权重。例如,如果字段1
中的匹配比字段2
中的匹配重要两倍,则可以使用qf=field1^2 field2^1
。自Solr 3.6及更高版本以来,这种情况不再存在。这样做之后,,搜索时出现错误“undefined field text”,您使用的是哪个版本的Solr?我在配置中使用的是Solr 5.3,它在solrconfig.xmlallText
中定义,字段“allText”在schema.xml中定义如下
,因此我猜您需要在架构中定义适当的字段-在本例中,该字段称为“allText”