2
我正在嘗試使用Elasticsearch提供一個建議功能。 關注此文章https://qbox.io/blog/multi-field-partial-word-autocomplete-in-elasticsearch-using-ngrams獲取有關字段Elasticsearch的建議
我現在的工作,但不是在同一句話中的兩個單詞。
我現在在ES的數據是。
{
"_index": "books",
"_type": "book",
"_id": "AVJp8p4ZTfM-Ee45GnF5",
"_score": 1,
"_source": {
"title": "Making a dish",
"author": "Jim haunter"
}
},
{
"_index": "books",
"_type": "book",
"_id": "AVJp8jaZTfM-Ee45GnF4",
"_score": 1,
"_source": {
"title": "The big fish",
"author": "Jane Stewart"
}
},
{
"_index": "books",
"_type": "book",
"_id": "AVJp8clRTfM-Ee45GnF3",
"_score": 1,
"_source": {
"title": "The Hunter",
"author": "Jame Franco"
}
}
這裏是映射和設置。
{"settings": {
"analysis": {
"filter": {
"nGram_filter": {
"type": "nGram",
"min_gram": 2,
"max_gram": 20,
"token_chars": [
"letter",
"digit"
]
}
},
"analyzer": {
"nGram_analyzer": {
"type": "custom",
"tokenizer": "whitespace",
"filter": [
"lowercase",
"nGram_filter"
]
},
"whitespace_analyzer": {
"type": "custom",
"tokenizer": "whitespace",
"filter": [
"lowercase"
]
}
}
}
},
"mappings": {
"books": {
"_all": {
"index_analyzer": "nGram_analyzer",
"search_analyzer": "whitespace_analyzer"
},
"properties": {
"title": {
"type": "string",
"index": "no"
},
"author": {
"type": "string",
"index": "no"
}
}
}
}
}
這裏是搜索
{
"size": 10,
"query": {
"match": {
"_all": {
"query": "Hunter",
"operator": "and",
"fuzziness": 1
}
}
}
}
,當我搜索「的」我得到 「大魚」和 「獵人」。 但是,當我輸入「The Hunt」時,我一無所獲。 爲了再次獲得這本書,我需要輸入「The Hunte」。 有什麼建議嗎? 任何幫助表示讚賞。
我不爲我工作,我想我使用ES 1.7.2。也許這是問題? – dontberude
Oppps對不起,它似乎工作。非常感謝。 – dontberude