Spell check suggestion


(Abhishek Gupta) #1

Hi Everyone,
i want to perform spell check suggestion with my data.I tried hard but i'm not able to get spell check suggestion.if anybody knows about that then please help me to resolve this problem.so tell me what is putting inside the mapping and the query to get the spell check suggestion.Let suppose i am putting name as Iorn means wrong spelling will be putting then automatic suggest me to correct word.I am sending my Index,mapping,data and query

  1. Index:

PUT /test_word20
{
"settings": {
"number_of_shards": 1,
"analysis": {
"filter": {
"autocomplete_filter": {
"type": "edge_ngram",
"min_gram": 1,
"max_gram": 20
}
},
"analyzer": {
"autocomplete": {
"type": "custom",
"tokenizer": "standard",
"filter": [
"lowercase",
"autocomplete_filter"
]
}
}
}
}
}

  1. MAPPING:

PUT /test_word20/_mapping/my_type
{
"properties": {
"name": {
"type": "string",
"analyzer": "autocomplete"
},
"depth":{
"type":"long"
},
"children": {
"type": "nested",
"properties": {
"name": {
"type": "string",
"analyzer": "autocomplete"
},
"depth":{
"type":"long"
},
"children": {
"type": "nested",
"properties": {
"code": { "type": "string" },
"name": {
"type": "string",
"analyzer": "autocomplete"
},
"depth":{
"type":"long"
},
"children": {
"type": "nested",
"properties": {
"code": { "type": "string" },
"name": {
"type": "string",
"analyzer": "autocomplete"
},
"depth":{
"type":"long"
}
}
}
}
}
}
}
}
}

  1. DATA:

POST /test_word20/my_type/1
{
"name": "Diseases of the blood and blood-forming organs and certain disorders involving the immune mechanism (D50-D89)",
"depth": 1,
"children": [{
"name": "Nutritional anemias (D50-D53)",
"depth": 2,
"children": [{
"code": "D50",
"name": "Iron deficiency anemia",
"depth": 3,
"children": [{
"code": "D50.0",
"name": "Iron deficiency anemia secondary to blood loss (chronic)",
"depth": 4
}, {
"code": "D50.1",
"name": "Sideropenic dysphagia",
"depth": 4
}, {
"code": "D50.8",
"name": "Other iron deficiency anemias",
"depth": 4
}, {
"code": "D50.9",
"name": "Iron deficiency anemia, unspecified",
"depth": 4
}]
}]
}]
}

  1. QUERY:

GET /test_word20/my_type/_search
{
"_source": false,
"query": {
"nested": {
"path": "children.children.children",
"query": {
"bool": {
"must": [
{
"match": {
"children.children.children.name": {
"query": "Iron",
"analyzer": "standard"
}
}
}
]
}
},
"inner_hits": {
"_source": {
"excludes":["name"]
}
}

    }
}

}


(Abhilash Bolla) #2

You may try using the phrase suggester for your purpose. Its also gives a flexibility to couple it with a query using the collate functionality.

Please refer here


(system) #3

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