sách gpt4 ai đã đi

elasticsearch - ElasticSearch中的半完全(完全)匹配

In lại 作者:行者123 更新时间:2023-12-02 23:38:06 28 4
mua khóa gpt4 Nike

有没有办法在ElasticSearch中要求完整(尽管不一定精确)匹配?

例如,如果一个字段具有术语"I am a little teapot short and stout",我想匹配" i am a LITTLE TeaPot short and stout! ",而不仅仅是"teapot short and stout"。我已经尝试过过滤器一词,但这需要实际的完全匹配。

1 Câu trả lời

如果您的“不一定精确”定义是指大写/小写字母组合和标点符号(例如示例中的!),那么这将是一个解决方案,不是太简单,也很难做到:

映射:

{
"settings": {
"analysis": {
"analyzer": {
"my_keyword_lowercase": {
"tokenizer": "keyword",
"filter": [
"lowercase",
"trim",
"my_pattern_replace"
]
}
},
"filter": {
"my_pattern_replace": {
"type": "pattern_replace",
"pattern": "!",
"replacement":""
}
}
}
},
"mappings": {
"test": {
"properties": {
"text": {
"type": "string",
"analyzer": "my_keyword_lowercase"
}
}
}
}
}

这里的想法如下:
  • sử dụngkeyword标记生成器将文本保持原样,并且不将其拆分为标记
  • sử dụnglowercase过滤器来消除混合的大写/小写字符
  • trim过滤器,用于摆脱尾随和前导空格
  • sử dụngpattern_replace过滤器来摆脱标点符号。之所以这样,是因为keyword标记化程序不会对文本中的字符执行任何操作。 standard分析器将执行此操作,但是standard也将拆分文本,而您需要像
  • 一样

    Đây là 您将在上面的映射中使用的查询:
    {
    "query": {
    "match": {
    "text": " i am a LITTLE TeaPot short and stout! "
    }
    }
    }

    关于elasticsearch - ElasticSearch中的半完全(完全)匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27871972/

    28 4 0
    行者123
    Hồ sơ cá nhân

    Tôi là một lập trình viên xuất sắc, rất giỏi!

    Nhận phiếu giảm giá Didi Taxi miễn phí
    Mã giảm giá Didi Taxi
    Giấy chứng nhận ICP Bắc Kinh số 000000
    Hợp tác quảng cáo: 1813099741@qq.com 6ren.com