asfd1001
asfd1001

Reputation: 41

Elasticsearch query with fuzziness AUTO not working as expected

From the Elasticsearch documentation regarding fuzziness:

AUTO

Generates an edit distance based on the length of the term. Low and high distance arguments may be optionally provided AUTO:[low],[high]. If not specified, the default values are 3 and 6, equivalent to AUTO:3,6 that make for lengths:

0..2 Must match exactly

3..5 One edit allowed

>5 Two edits allowed

However, when I am trying to specify low and high distance arguments in the search query the result is not what I am expecting.

I am using Elasticsearch 6.6.0 with the following index mapping:

{
    "fuzzy_test": {
        "mappings": {
            "_doc": {
                "properties": {
                    "description": {
                       "type": "text"
                    },
                    "id": {
                        "type": "keyword"
                    }
                }
            }
        }
    }
}

Inserting a simple document:

{
    "id": "1",
    "description": "hello world"
}

And the following search query:

{
    "size": 10,
    "timeout": "30s",
    "query": {
        "match": {
            "description": {
                "query": "helqo",
                "fuzziness": "AUTO:7,10"
            }
        }
    }
}

I assumed that fuzziness:AUTO:7,10 would mean that for the input term with length <= 6 only documents with the exact match will be returned. However, here is a result of my query:

{
    "took": 1,
    "timed_out": false,
    "_shards": {
        "total": 1,
        "successful": 1,
        "skipped": 0,
        "failed": 0
    },
    "hits": {
        "total": 1,
        "max_score": 0.23014566,
        "hits": [
            {
                "_index": "fuzzy_test",
                "_type": "_doc",
                "_id": "OQtUu2oBABnEwrgM3Ejr",
                "_score": 0.23014566,
                "_source": {
                    "id": "1",
                    "description": "hello world"
                }
            }
        ]
    }
}

Upvotes: 3

Views: 6162

Answers (1)

asfd1001
asfd1001

Reputation: 41

This is strange but seems like that bug exists only in version the Elasticsearch 6.6.0. I've tried 6.4.2 and 6.6.2 and both of them work just fine.

Upvotes: 1

Related Questions