gpt4 book ai didi

elasticsearch - 如何使用 ElasticSearch 前缀查询匹配我选择的最小大小的单词

转载 作者:行者123 更新时间:2023-12-02 22:27:44 26 4
gpt4 key购买 nike

我想使用 进行搜索前缀 询问。我得到了结果,但这并不完全是我想要的。让我在下面的例子中解释它。假设我使用前缀搜索

"query": 
{
"prefix" : { "title" : "o" }
}

我得到如下结果
  • 某事某事
  • 某事某事
  • 某事原创

  • 在以上 3 个中,只有最后一个是我感兴趣的。所以我想知道有什么办法可以告诉elasticsearch,请只返回前缀与大于或等于长度(比如)5的单词(或者更具体的倒排索引)匹配的结果。

    最佳答案

    前缀查询中没有这样的选项 仅返回前缀与大于或等于长度(例如)5 的单词(或者更具体的倒排索引)匹配的结果.我什至尝试了index-prefix这将在您的倒排索引中创建单独的标记,但没有解决问题。

    然后,我创建了一个基于 edge-ngram 的自定义分析器我指定最小克长度为 5 的标记器,然后在标题字段上应用相同的长度。这样你的original文本将按以下方式标记:

    {
    "tokens": [
    {
    "token": "origi",
    "start_offset": 0,
    "end_offset": 5,
    "type": "word",
    "position": 0
    },
    {
    "token": "origin",
    "start_offset": 0,
    "end_offset": 6,
    "type": "word",
    "position": 1
    },
    {
    "token": "origina",
    "start_offset": 0,
    "end_offset": 7,
    "type": "word",
    "position": 2
    },
    {
    "token": "original",
    "start_offset": 0,
    "end_offset": 8,
    "type": "word",
    "position": 3
    }
    ]
    }

    而对于 or , of , orig它根本不会创建任何标记,因为在标记器中将 min gram 指定为 5。 现在,您的相同前缀查询将只获取预期的文档。

    我已经在我的本地和 this 中验证了这一点是 index-mapping 的 postman 集合链接,您的示例文档,搜索和分析查询,以便您更好地理解这一点。

    关于elasticsearch - 如何使用 ElasticSearch 前缀查询匹配我选择的最小大小的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57299093/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com