SOLR - 仅查询特定字段

时间:2016-01-15 14:44:31

标签: solr

我有一个由多个字段组成的搜索索引,应该从多个应用程序中使用。例如,假设我有以下字段:

  • A
  • C
  • d
  • 电子

字段A,B,C的值由ApplicationX提供,而字段D和E的值由ApplicationY提供。在从ApplicationX进行搜索时,我想从字段A,B,C中获取结果,当我从ApplicationY搜索时,我希望从B,C,D,E中搜索。

我尝试过这样的事情,其中​​str是一个包含我的搜索字符串的变量:

A:(str) B:(str) C:(str)

这个问题是在输入像A:monkey这样的搜索字符串时,我得到了

A:(A:monkey) B:(A:monkey) C:(A:Monkey)

而非A:monkey

有没有办法查询SOLR,以便它只返回特定字段的匹配,同时保留在我的应用程序中编写SOLR语法查询的可能性?

1 个答案:

答案 0 :(得分:0)

只要您使用edismax并使用qf,查询中的特定字段名称就会覆盖qf中提供的字段名称。

对于有关App1的查询,请指定qf=A B C,而对于App2则指定qf=B C D E。如果您针对特定字段(即A:monkey)提交查询,则qf参数将被忽略。