当前位置: 首页 > 面试题库 >

使用完成提示器时,如何获得没有重复的独特建议?

席嘉祯
2023-03-14
问题内容

我在我的环境中使用Elastic
5.1.1。我已在具有post_hashtags字符串数组的字段名称上选择了完成提示,以对其提出建议。我收到以下针对前缀“ inv”的响应

要求:

POST hashtag/_search?pretty&&filter_path=suggest.hash-suggest.options.text,suggest.hash-suggest.options._source
{"_source":["post_hashtags" ],

"suggest": {
    "hash-suggest" : {
        "prefix" : "inv",
        "completion" : {
            "field" : "post_hashtags"
        }
    }
}

回应:

{
  "suggest": {
    "hash-suggest": [
      {
        "options": [
          {
            "text": "invalid",
            "_source": {
              "post_hashtags": [
                "invalid"
              ]
            }
          },
          {
            "text": "invalid",
            "_source": {
              "post_hashtags": [
                "invalid",
                "coment_me",
                "daya"
              ]
            }
          }
        ]
      }
    ]
  }

此处两次返回“无效”,因为它也是其他文档中相同字段“ post_hashtags”的输入字符串。

问题是,如果相同索引中的1000个文档中存在相同的“无效”输入字符串,那么我将得到1000个重复的建议,这是巨大的并且不需要。

我可以在完成类型的字段上应用聚合吗?

即使我在相同索引的多个文档中为特定字段指定了相同的输入字符串,也可以通过任何方法获得唯一的建议而不是重复的文本字段?


问题答案:

ElasticSearch
6.1引入了skip_duplicates运算符。用法示例:

{
  "suggest": {
    "autocomplete": {
      "prefix": "MySearchTerm",
      "completion": {
        "field": "name",
        "skip_duplicates": true
      }
    }
  }
}


 类似资料:
  • 我在我的环境中使用弹性5.1.1。我选择了一个字段名上的completation suggester和一个字符串数组,以便对其进行建议。我得到以下关于前缀“inv”的回应 请求:

  • 我的代码中的一些行如下所示。所有返回字符串和我的都是日期类型。

  • 问题内容: 我正在处理高度不平衡的数据集,我的想法是从我的 libSVM 模型中获取特征权重的值。到目前为止,我对线性内核还可以,我可以在其中获得特征权重,但是当我使用或时,我无法达到目标。 在这里,我正在使用我的模型,并且可以使用轻松获得线性核的特征权重。谁能帮助我可以做同样的事情还是?到目前为止,我已尝试执行以下操作: 问题答案: 正如文档中所述,这不仅是不可能的: 权重分配给特征(原始问题的

  • 我有以下代码: 在fxml文件中有一个对控制器类的引用。如何获取控制器对象? fxml:

  • 问题内容: 我有一个学校项目,可以解析网络代码并将其像数据库一样使用。当我尝试从(https://www.marathonbet.com/en/betting/Football/)提取数据时,我没有全部了解吗? 这是我的代码: 获得的结果(这是显示的联赛的最后一个): 在她上面显示所有联赛。 为什么我没有完整的数据?感谢您的时间! 问题答案: Jsoup的默认正文响应限制为1MB。您可以使用 ma

  • 我正在使用python IDLE,在执行以下操作之后,我会收到这个导入错误