Fuzzy searching on shingles filter getting problem


(Vishal) #1

Query: How to apply fuzziness on every token produced by shingles filter?

Below is my created mapping:
{
"settings":{
"index":{
"number_of_shards" : 1,
"number_of_replicas" : 0 ,
"analysis":{
"filter": {
"my_synonym_filter": {
"type": "synonym",
"tokenizer" : "standard",
"synonyms":[
"nwm,northwestern mutual wealth management=> northwestern mutual wealth management"
]
},
"filter_shingle":{
"type":"shingle",
"tokenizer" : "standard",
"max_shingle_size":10,
"min_shingle_size":2,
"output_unigrams":"true"
}
},
"analyzer":{
"analyzer_case_insensitive":{
"tokenizer": "keyword",
"filter":[ "lowercase","my_synonym_filter"]
},
"analyzer_shingle":{
"tokenizer": "standard",
"filter":[ "lowercase","my_synonym_filter","filter_shingle"]
}
}
}
},
"index.mapping.total_fields.limit": 9000000000000000000
},
"mappings" : {
"docs" : {
"properties" : {
"aliases" : {
"type" : "text",
"analyzer":"analyzer_case_insensitive",
"search_analyzer":"analyzer_shingle",
"fields" : {
"text" : {
"type" : "keyword",
"ignore_above" : 256
}
}
},
{
"not_recognized" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
},
"tagName" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
}
}
}
}
}

Below is my query:
{
"query": {
"bool": {
"should": [
{
"bool": {
"should": [
{
"match": {
"aliases":
{
"query": "nwm sals",
"fuzziness": 2
}
}
}
]
}
}
]}
}}

so from above query shingles filter produces combination of words from the statement "northwestern mutual wealth management sals"

so i am expecting to apply fuzziness on each token produced by shingles filter and display the results according.
I am using elasticsearch 5.4.0 version
here from my query fuzziness is not getting applied on any token ..am i missing something?

Please let me know about this as i am stuck into it.


(system) #2

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