Elasticsearch - Edit distance using fuzzy is inaccurate


(Prasanna Kumar) #1

I am using ES 5.5 and my requirement is to allow upto two edits while matching a field.

In ES,I have value as 124456788 and query comes in as 123456789

"fuzzy": {
							"idkey": {
								"value": **"123456789"**,
								"fuzziness": "20"
								
							}
						}

To my knowledge the edit distance is 2 between these two numbers. But it is not matching even with fuzziness property as 20.

I did an explain api call and here is what I am seeing

"description": "no match on required clause (((idkey:012345789)^0.7777778 (idkey:012346789)^0.7777778 (idkey:013456789)^0.7777778 (idkey:023456789)^0.8888889 (idkey:102345678)^0.7777778 (idkey:112345678)^0.7777778 (idkey:113456789)^0.8888889 (idkey:120456589)^0.7777778 (idkey:121345678)^0.7777778 (idkey:122345678)^0.7777778 (idkey:122345679)^0.7777778 (idkey:122456789)^0.8888889 (idkey:123006789)^0.7777778 (idkey:123045678)^0.7777778 (idkey:123096789)^0.7777778 (idkey:123106789)^0.7777778 (idkey:123145678)^0.7777778 (idkey:123146789)^0.7777778 (idkey:123226789)^0.7777778 (idkey:123256789)^0.8888889 (idkey:123345678)^0.7777778 (idkey:123345689)^0.7777778 (idkey:123346789)^0.7777778 (idkey:123406784)^0.7777778 (idkey:123415678)^0.7777778 (idkey:123435678)^0.7777778 (idkey:123446789)^0.8888889 (idkey:123453789)^0.8888889 (idkey:123454789)^0.8888889 (idkey:123455789)^0.8888889 (idkey:123456289)^0.8888889 (idkey:123456489)^0.8888889 (idkey:123456709)^0.8888889 (idkey:123456779)^0.8888889 (idkey:123456780)^0.8888889 (idkey:123456781)^0.8888889 (idkey:123456783)^0.8888889 (idkey:123456785)^0.8888889 (idkey:123456786)^0.8888889 (idkey:123456787)^0.8888889 (idkey:123456889)^0.8888889 (idkey:123457789)^0.8888889 (idkey:123466789)^0.8888889 (idkey:123496789)^0.8888889 (idkey:123556789)^0.8888889 (idkey:126456789)^0.8888889 (idkey:223456789)^0.8888889 (idkey:423456789)^0.8888889 (idkey:623456789)^0.8888889 (idkey:723456789)^0.8888889)^5.0)",

The value I am expecting to match is 124456788 but ES query is internally not converting it as one of the possible match parameter in fuzzy query.

Do i need to use different ES method to make this work?


(Alexander Reelsen) #2

check the documentation about fuzziness and how many transpositions it is supporting.

You might want to check out the phonetic analysis plugin as an alternative.


(system) #3

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.