如何在Solr的两个字段中搜索所有术语?

时间:2013-05-14 20:47:25

标签: solr full-text-search

查询中的所有术语都应存在于字段的组合内容中。例如。当我搜索术语组合时,如果出现以下情况,则应返回文件:

  • 所有字词都出现在“说明”字段,“元数据”字段或两个字段
  • 或所有字词都分布在两个字段中(例如,“说明”字段中存在一个字词,“元数据”字段中存在其余两个字词)

所以q.op=AND,但跨越两个单独的字段。我该如何写我的查询?

如果我将索引更改为使用单个多值字段而不是两个单独的字段,这会使这种情况更容易吗?

1 个答案:

答案 0 :(得分:3)

是的,您可以使用copyfield将这两个字段合并为一个多值字段。

<copyField source="metadata" dest="metadata_desc" />
<copyField source="descrition" dest="metadata_desc" />

可以使用q=metadata_desc:"some search"&q.op=AND

形成查询

使用q.op搜索所有条款将是强制性的,并且应该与要返回的文档匹配。默认值为OR

这将在任一字段和字段中进行匹配。