gpt4 book ai didi

elasticsearch - 使用省略的Elasticsearch索引

转载 作者:行者123 更新时间:2023-12-03 02:00:03 25 4
gpt4 key购买 nike

我如何索引单词,例如Elasticsearch中的L'Oréal?

用户可以通过两种方式输入:

  • Loreal
  • 欧莱雅
  • 欧莱雅

  • 理想情况下,我希望它们全部输出loreal。我不想为每个特殊关键字手动执行此操作。

    Elision Token Filter似乎很有用,但仅适用于第二和第三种情况。

    任何想法,我将如何使所有这些关键字输出相同的标记 loreal

    最佳答案

    省略 token 过滤器实际上会删除指定的文章,因此您的 token 中永远不会包含loreal,即第一个l永远不会包含它。

    我的建议是结合使用asciifoldinglowercase进行以下操作:

    PUT test_index
    {
    "settings": {
    "analysis": {
    "analyzer": {
    "my_analyzer": {
    "tokenizer": "standard",
    "filter": [
    "standard",
    "asciifolding",
    "lowercase"
    ],
    "char_filter": [
    "apostrophe"
    ]
    }
    },
    "char_filter": {
    "apostrophe": {
    "type": "mapping",
    "mappings": [
    "'=>"
    ]
    }
    }
    }
    }
    }

    使用 my_analyzer,您指定的所有输入字符串将转换为 loreal token 。
    curl -XGET 'localhost:9200/test_index/_analyze?analyzer=my_analyzer&pretty' -d "Loreal"
    => loreal

    curl -XGET 'localhost:9200/test_index/_analyze?analyzer=my_analyzer&pretty' -d "L'Oreal"
    => loreal

    curl -XGET 'localhost:9200/test_index/_analyze?analyzer=my_analyzer&pretty' -d "L'Oréal"
    => loreal

    关于elasticsearch - 使用省略的Elasticsearch索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33608906/

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