1

我正在尝试对多个字段进行 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

我在这里缺少什么吗?我认为您可以搜索多个字段,并且我认为“qf”参数意味着您不需要提供默认字段参数?

非常感谢所有帮助...

4

1 回答 1

2

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


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


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

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

于 2016-01-09T19:43:30.033 回答