elasticsearch - Elasticsearch将长序列字符串与模糊查询进行比较

标签 elasticsearch sequence fuzzy-search

我有两个相似的长字符串序列:

C50FD711C2C43287351892A4D82F44B055F048C46D2C54197AC1D1E921F11E6699C4057C4B93907518E6DCA51A672D3D3E419160DAE276CB7716D11B94D8C3BB2E4A591329B7AF973D17A7F9336342FFAAFD4D


C50FD711C2C43287351892A4D820B5EAC5F048C1E67CAC197AC1D1E921F11C3623C1DCD6493907518E6DCA18CD71016E7FD1160DAE276CB7716D11B94A6B762E4A591329B7AF973D17A7F9336342FFAAFD4D

它的距离是41。
我想找到彼此相似的那些字符串。我开始这样的查询:
GET my_index/_type/_search
{
"query": {
        "fuzzy" : {
            "sequence.keyword": {
                "value": "C50FD711C2C43287351892A4D820B5EAC5F048C1E67CAC197AC1D1E921F11C3623C1DCD6493907518E6DCA18CD71016E7FD1160DAE276CB7716D11B94A6B762E4A591329B7AF973D17A7F9336342FFAAFD4D",
                "boost": 1.0,
                "fuzziness": 50,
                "prefix_length": 10,
                "max_expansions": 200
            }
        }
    }
}

我尝试使用sequence.keyword和sequence,该字段的类型为text和type keyword。
但是,它在我的索引中找不到其他类似的序列字符串。为什么?

最佳答案

答案很简单。允许的最大编辑距离为2(如source code for the Fuzziness class所示)

您可以尝试使用一个更简单的值,如果您索引AAAAAA并尝试使用AAABBB搜索fuzziness: 3,那么您将一无所获。

关于elasticsearch - Elasticsearch将长序列字符串与模糊查询进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55300446/

相关文章:

postgresql - Postgres "Materialized View"刷新为 ElasticSearch 文档更新的来源?

elasticsearch - Kibana-Elasticsearch堆栈:QueryParsingException

MySQL 子字符串模糊搜索

lucene - Elasticsearch _boost 已弃用。还有其他选择吗?

elasticsearch - 使用 Java API 在 Elasticsearch 中使用 Completion Suggesters 进行查询

java - 最大连续子序列和与序列

c++ - 增长序列的长度 C++

python - 在列表中查找重复子串

python - 获取字典中多个单词的接近匹配项

c# - 找出两个字符串是否模糊的最快方法是什么? [不是另一个 Levenshtein 帖子]