在所有字段中搜索多个值?

时间:2009-12-15 12:05:59

标签: search full-text-search solr

我有两个字段:

标题 体

我想搜索两个单词

狗 要么 猫

。每个人。

我试过q = *:狗或猫

但它不起作用。

我该怎么输入?

PS。我可以在schema.xml中输入默认搜索字段= ALL字段吗?

1 个答案:

答案 0 :(得分:0)

正如Mauricio所说,使用copyField(参见http://wiki.apache.org/solr/SchemaXml#Copy_Fields)是一种允许在多个字段中进行搜索而不在查询字符串中指定它们的方法。在该场景中,您定义copyField,然后设置复制到它的字段。

<field name="mysearchfield" type="string" indexed="true" stored="false"/>
...
<copyField source="title" dest="mysearchfield"/>
<copyField source="body" dest="mysearchfield"/>

完成后,您可以执行以下搜索:

q=mysearchfield:dog OR mysearchfield:cat

如果您的查询分析器设置为拆分空格(典型值),则可以简化为:

q=mysearchfield:dog cat

如果“mysearchfield”将成为您的标准搜索,您可以通过将该copyField定义为架构中的defaultSearchField来进一步简化:

<defaultSearchField>mysearchfield</defaultSearchField>

之后,查询将变为:

q=dog cat