Elasticsearch сравнивает строки с длинной последовательностью с нечетким запросом - PullRequest
0 голосов
/ 22 марта 2019

У меня есть две длинные последовательности String, которые похожи:

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.Тем не менее, он не нашел другую похожую строку последовательности в моем индексе.Почему?

1 Ответ

1 голос
/ 22 марта 2019

Ответ довольно прост. Максимально допустимое расстояние редактирования - 2 (как видно из исходного кода для класса Fuzziness

Вы можете попробовать с более простым значением, если индексировать AAAAAA и попытаться найти AAABBB с помощью fuzziness: 3, вы ничего не получите.

...