SOLR:在多个字段中搜索一个值
SOLR: Search for a value in multiple fields
我正在寻找一种查询多个字段中的值的方法。基本上我正在构建一个简单的搜索引擎,用户可以在其中输入 ie。 “Java 如何 XML JSON”,它将在 3 个不同的字段中搜索这些值 categories, tags, description
。
我在一些博客上读到我应该查询所有字段 q=*:*
然后根据这些字段进行过滤,例如 fq=categories:java,xml,how,to,json description:java,xml,how,to,json tags:java,xml,how,to,json
这有效:|但是像这样只复制粘贴值似乎是不正确的。
有正确的方法吗?我已经研究了一段时间,但我还没有找到解决方案。
感谢任何帮助,
谢谢
您可以使用 defType=edismax
获取扩展的 dismax 处理程序。这是为了处理用户输入的查询(即你输入的内容)。然后,您可以使用 qf
(查询字段)告诉 edismax 处理程序您要搜索哪些字段(以及每个字段的可选权重):
q=Java How to XML JSON&defType=edismax&qf=categories^5 tags description
.. 将在所有字段中搜索字符串“Java How to XML JSON”的每个部分,并且 categories
字段中的任何命中将比其他两个领域的命中率高五倍。
我正在寻找一种查询多个字段中的值的方法。基本上我正在构建一个简单的搜索引擎,用户可以在其中输入 ie。 “Java 如何 XML JSON”,它将在 3 个不同的字段中搜索这些值 categories, tags, description
。
我在一些博客上读到我应该查询所有字段 q=*:*
然后根据这些字段进行过滤,例如 fq=categories:java,xml,how,to,json description:java,xml,how,to,json tags:java,xml,how,to,json
这有效:|但是像这样只复制粘贴值似乎是不正确的。
有正确的方法吗?我已经研究了一段时间,但我还没有找到解决方案。
感谢任何帮助, 谢谢
您可以使用 defType=edismax
获取扩展的 dismax 处理程序。这是为了处理用户输入的查询(即你输入的内容)。然后,您可以使用 qf
(查询字段)告诉 edismax 处理程序您要搜索哪些字段(以及每个字段的可选权重):
q=Java How to XML JSON&defType=edismax&qf=categories^5 tags description
.. 将在所有字段中搜索字符串“Java How to XML JSON”的每个部分,并且 categories
字段中的任何命中将比其他两个领域的命中率高五倍。