Elasticsearch单词顺序

时间:2019-01-09 16:03:05

标签: elasticsearch elasticsearch-6

我已经使用标准分析仪为文档建立了索引

foo 1 bar
foo 2 bar
foo 3 bar

以此类推。

当我进行类似“ asdf foo 1 bar 2 ”的马赫查询时,尽管 foo 2 bar 的得分高于 foo 1 bar 查询字符串包含短语“ foo 1 bar”

如何构造查询,以便将字序考虑在内?主要问题是查询字符串可能比文档包含更多的单词。

1 个答案:

答案 0 :(得分:2)

您应该考虑使用“带状疱疹”。它们就像微型短语,可以通过将成对的相邻术语组合在一起来帮助提高相关性。然后,如果您获得多个带状匹配,则可以提高与仅具有单个单词匹配的另一个文档的相关性。

文档1的原始版本

"foo 1 bar"

文档1的标题

"foo 1", "1 bar"

因此,对于查询asdf foo 1 bar 2,您将在查询的那些部分上分别在foo 11 bar上获得匹配项,这将增加第一个文档与第二。

Elasticsearch Docs中了解有关带状疱疹的更多信息。

您可能应该为此字段创建多个字段映射,以便获得带状疱疹以及标准文本分析的好处。该过程在文档中也有详细记录,如果遇到问题,可以在此处创建另一个问题。