使用elasticsearch搜索我們的文檔,我們發現當我們搜索「wave board」時,我們得不到好的結果,因爲包含「waveboard」的文檔不在結果的頂部。谷歌做這種「術語合併」。 ES中有這樣一個簡單的方法嗎?使用Elasticssearch時自動合併搜索條件?
1
A
回答
0
找到一個很好的解決方案:使用「」作爲標記分隔一個鵝卵石過濾器創建一個自定義anaylzer和使用,在查詢(使用布爾查詢與標準查詢組合)
0
要在分析的時間做到這一點,你也可以使用已知的「解析」令牌過濾器。這裏是邦元分解文本「catdogmouse」到 令牌「貓」,「狗」和「鼠標」的例子:
POST /decom
{
"settings": {
"index": {
"analysis": {
"analyzer": {
"decom_analyzer": {
"type": "custom",
"tokenizer": "standard",
"filter": ["decom_filter"]
}
},
"filter": {
"decom_filter": {
"type": "dictionary_decompounder",
"word_list": ["cat", "dog", "mouse"]
}
}
}
}
},
"mappings": {
"doc": {
"properties": {
"body": {
"type": "string",
"analyzer": "decom_analyzer"
}
}
}
}
}
然後你就可以看到他們是如何應用到某些方面:
POST /decom/_analyze?field=body&pretty
racecatthings
{
"tokens" : [ {
"token" : "racecatthings",
"start_offset" : 1,
"end_offset" : 14,
"type" : "<ALPHANUM>",
"position" : 1
}, {
"token" : "cat",
"start_offset" : 1,
"end_offset" : 14,
"type" : "<ALPHANUM>",
"position" : 1
} ]
}
而另一:(你應該能夠推斷這單獨的「滑板」 成「波」和「董事會」)
POST /decom/_analyze?field=body&pretty
catdogmouse
{
"tokens" : [ {
"token" : "catdogmouse",
"start_offset" : 1,
"end_offset" : 12,
"type" : "<ALPHANUM>",
"position" : 1
}, {
"token" : "cat",
"start_offset" : 1,
"end_offset" : 12,
"type" : "<ALPHANUM>",
"position" : 1
}, {
"token" : "dog",
"start_offset" : 1,
"end_offset" : 12,
"type" : "<ALPHANUM>",
"position" : 1
}, {
"token" : "mouse",
"start_offset" : 1,
"end_offset" : 12,
"type" : "<ALPHANUM>",
"position" : 1
} ]
}
相關問題
- 1. 對搜索條件使用組合框
- 2. Github - 搜索合併
- 3. 索引搜索與合併
- 4. 搜索並移動文件
- 5. 搜索條件表單和集合
- 6. 使用字符串作爲搜索的R數據框中的條件合併
- 7. 在MERGE sql server的ON搜索條件中合併兩列
- 8. Swift 3:按下外部搜索條,搜索被自動刪除
- 9. jqGrid - 爲搜索條件使用組合框選項
- 10. 結合自由文本搜索與另一個條件是
- 11. 使用謂詞條件搜索元素
- 12. 篩選條件搜索使用LINQ
- 13. 一對多搜索使用AND條件
- 14. 使用lucene.net進行條件搜索
- 15. 彈性搜索 - 使用條件搜索多個值
- 16. 谷歌自定義搜索api複雜搜索條件
- 17. 在搜索條件
- 18. Solr搜索條件
- 19. Mongodb條件搜索
- 20. Algolia條件搜索
- 21. 使用ldapsearch搜索條目
- 22. 合併兩行和搜索
- 23. Java併發集合搜索
- 24. 使用lucene自動完成如何丟棄某些搜索條件
- 25. Hibernate搜索其他搜索條件
- 26. 條件合併
- 27. 彈性搜索(COUNT *),並按組條件和條件
- 28. 在Rails中使用jquery自動完成時搜索並顯示多列?
- 29. 有沒有可能在動態條件下使用Sphinx搜索?
- 30. Listbox自動搜索
很好的解決方案,但缺點是對dicition的需要元 – longliveenduro