Solr dismax 查询多个字段

Solr dismax Query Over Multiple Fields

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

但是,这似乎不起作用 - 它 returns 零条记录。

当我像下面这样放置一个默认字段时,它现在可以工作了,但这有点废话,因为这意味着我没有从搜索所有 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' 参数意味着您不需要提供默认字段参数?

非常感谢大家的帮助...

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


您能否更具体地说明什么不起作用?


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

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