当前位置: 首页 > 知识库问答 >
问题:

如何在弹性搜索DSL查询中像其他搜索引擎一样省略相似的结果?

西门建安
2023-03-14

我正在使用ElasticSearch存储一些文档来创建一个搜索引擎,一切都工作得很完美。

我们可以在弹性云中存储类似的文档。

我可以看到一些搜索引擎像谷歌一样省略了类似的数据

查看谷歌结果底部的这条消息:

我需要实现这一点,我想知道是否有任何方法可以省略类似的文档在查询结果中使用弹性搜索,并给用户这个选项,他要么想看到所有的结果或不想看到?

有什么建议吗?

我的弹性索引里有很多像这样的文档。如何在DSL查询中省略类似项而只显示其中一个?

有什么方法可以实现这一点,或者需要AI、ML和这些东西来实现这一点吗?

共有1个答案

邹毅
2023-03-14

为了解决你的问题,你需要定义你所说的“相似”是什么意思。

谷歌对它有一个自定义的定义,适用于网页。这个定义是基于领域的--你知道,不是为了被一个领域的结果淹没,而是基于内容--谷歌对复制的网页排名靠后。

您需要为您的文档定义一个特定的度量标准。它通常基于一个特定的性质,行列式域。什么会是你的决定因素--你知道的。如果你有一个论坛引擎,topicID是一个很好的选择。如果您有一个产品目录,叶categoryID将是最好的。

有两种方法可以达到这个目的。

  1. 折叠

这正是你想要的。您可以在文档中定义行列式字段,也可以定义希望显示为详细信息的内容,等等。ElasticSearch文档为您提供了许多提示。

这将给出准确的结果,不管你有多少碎片,尽管这是一个有点重的操作。

    "aggregations": {
        "sample": {
            "diversified_sampler": {
                "field": "topicId",
                "shard_size": 200,
                "max_docs_per_value": 1
            },
 类似资料:
  • 我刚加入弹性搜索公司。而不知道如何在JSON请求中对索引和an类型发出正确的请求?(所以我不想像localhost:9200/myindex/mytype/_search那样在URL中使用索引和类型,而是向localhost:9200/_search发出JSON请求) 我试过这样的东西。但我得到的结果是'AAA'索引而不是'BBB'索引。如何只从bbb索引得到结果或者根本没有结果?

  • 我有以下格式的弹性搜索文档 } } 我的要求是,当我搜索特定字符串(string.string)时,我只想获得该字符串的FileOffSet(string.FileOffSet)。我该怎么做? 谢谢

  • 我正在LDAP服务器上工作。它有弹性搜索。我必须用一些Javascript代码(JSON格式)发送查询。 这是我的查询: 我试图打印所有结果,其中“server”=“server\u name”(该字段是server:server\u name…)。我认为关于弹性搜索的文档太小了。我找到了一些文档,但都是一样的,对新用户没有帮助。这个例子太简单了。 此查询返回所有结果,包括任何筛选器。 Ps:这就

  • 我有大量相同类型的实体,每个实体都有大量属性,并且我只有以下两种选择来存储它们: 将每个项存储在索引中并执行多索引搜索 将所有enties存储在单个索引中,并且只搜索1个索引。 一般而言,我想要一个时间复杂度之间的比较搜索“N”实体与“M”特征在上述每一种情况!

  • 我正在使用以下搜索: 我现在想使用弹性搜索在索引过程中提供的id ()来过滤结果。例如,{}。我猜你得用查询这个词。结果应该是只有当< code>_id匹配时,文档才返回。我该怎么做呢?

  • 如何获得空数组和美国的结果和