Solr dismax查询多个字段

时间:2016-01-06 21:35:18

标签: solr dismax

我正在尝试对多个字段执行solr dismax查询,并且与语法有点混淆。

我的核心包含一大堆播客剧集。索引中的字段是EPISODE_ID,EPISODE_TITLE,EPISODE_DESC和EPISODE_KEYWORDS。

现在,当我进行查询时,我想在EPISODE_TITLE,EPISODE_DESC和EPISODE_KEYWORDS字段中搜索查询字词,并为不同的字段提供不同的提升。

因此,当我搜索' jedi'时,我构建的查询如下所示:

http://localhost:8983/solr/episode_core/select?
    &defType=dismax&q=jedi&fl=EPISODE_ID,EPISODE_TITLE,EPISODE_DESC,EPISODE_KEYWORDS
    &qf=EPISODE_TITLE^3.0+EPISODE_DESC^2.0+EPISODE_KEYWORDS

然而,这似乎不起作用 - 它返回零记录。

当我输入如下所示的默认字段时,它现在有效,但这是一种废话,因为这意味着我没有从搜索所有3个字段中获得结果:

http://localhost:8983/solr/episode_core/select?&df=EPISODE_DESC
    &defType=dismax&q=jedi&fl=EPISODE_ID,EPISODE_TITLE,EPISODE_DESC,EPISODE_KEYWORDS
    &qf=EPISODE_TITLE^3.0+EPISODE_DESC^2.0+EPISODE_KEYWORDS

我在这里缺少什么吗?我以为你可以在多个领域进行搜索,而且我认为这是一个很好的选择。参数意味着您不需要提供默认字段参数?

所有人都非常感谢...

1 个答案:

答案 0 :(得分:1)

你的想法是正确的。如果您为Dismax定义了 qf (查询字段),则不需要指定 df (默认字段)。

你能更具体地说明什么不起作用吗?

此外,请阅读solrconfig.xml中的Configuration Invariants,因为您的配置可能会发送一些与您在网址中指定的参数不同的参数。

(例如,如果您看到一条要求您提供 df 的特定错误消息)