【问题标题】:Elasticsearch, understanding completion suggesterElasticsearch,理解补全建议器
【发布时间】:2019-12-23 23:29:51
【问题描述】:

我收到了为autocomplete工作的完成建议

但是我有一个我自己无法回答的问题

为什么我们将建议存储在文档的某个字段中?

GET /my_index/_search

{
  hits: [{
    "_id": 1,
    "suggest": {
      "input": [
        "p1",
        "p22",
      ],
      "weight": 1
    }
  }, {
    "_id": 2,
    "suggest": {
      "input": [
        "p22",
        "p3",
      ],
      "weight": 1
    }
  }]
}

对于autocomplete,我们不只需要一个短语列表吗?

[
  "p1",
  "p22",
  "p3"
]
  1. 我们通过suggestdoc 的关联获得了什么?
  2. 如示例中,多个文档可以具有相同的suggest 输入,在示例中p22。当我向autocomplete 询问p2 时,我得到两个p22。 有没有办法处理这个问题?

【问题讨论】:

  • 如果不在文档本身中,您会将建议存储在哪里?

标签: elasticsearch autocomplete


【解决方案1】:
  1. 除了将建议存储在文档本身的completion 字段中之外,没有其他方法可以存储建议。这为您提供了最大的灵活性,因为即使两个文档具有相同或相似的建议,如果您认为有必要,您也可以给一个比另一个更高的权重。

  2. 如果您有多个文档具有相同的建议,您可以利用skip_duplicates 设置,ES 将从响应中过滤掉重复的建议。

【讨论】:

  • 这个运气好吗?
猜你喜欢
  • 2017-06-04
  • 1970-01-01
  • 1970-01-01
  • 2010-10-21
  • 1970-01-01
  • 2022-01-22
  • 1970-01-01
  • 1970-01-01
  • 2014-05-18
相关资源
最近更新 更多