短語搜索,高亮搜索
阿新 • • 發佈:2017-12-04
port get html .cn 沒有 https efi nbsp ctr
接著上節: http://www.cnblogs.com/spectrelb/p/7977051.html
短語搜索
找出一個屬性中的獨立單詞是沒有問題的,但有時候想要精確匹配一系列單詞或者短語 。 比如, 我們想執行這樣一個查詢,僅匹配同時包含 “rock” 和 “climbing” ,並且 二者以短語 “rock climbing” 的形式緊挨著的雇員記錄。
為此對 match
查詢稍作調整,使用一個叫做 match_phrase
的查詢
GET /megacorp/employee/_search { "query": { "match_phrase": { "about": "rock climbing" } } }
結果:
{ "took": 8, "timed_out": false, "_shards": { "total": 5, "successful": 5, "failed": 0 }, "hits": { "total": 1, "max_score": 0.53484553, "hits": [ { "_index": "megacorp", "_type": "employee", "_id": "1", "_score": 0.53484553, "_source": { "first_name": "John", "last_name": "Smith", "age": 25, "about": "I love to go rock climbing", "interests": [ "sports", "music" ] } } ] } }
高亮搜索
許多應用都傾向於在每個搜索結果中 高亮 部分文本片段,以便讓用戶知道為何該文檔符合查詢條件。在 Elasticsearch 中檢索出高亮片段也很容易。
再次執行前面的查詢,並增加一個新的 highlight
參數
GET /megacorp/employee/_search { "query": { "match_phrase": { "about": "rock climbing" } }, "highlight": { "fields" : { "about" : {} } } }
結果:
{ "took": 27, "timed_out": false, "_shards": { "total": 5, "successful": 5, "failed": 0 }, "hits": { "total": 1, "max_score": 0.53484553, "hits": [ { "_index": "megacorp", "_type": "employee", "_id": "1", "_score": 0.53484553, "_source": { "first_name": "John", "last_name": "Smith", "age": 25, "about": "I love to go rock climbing", "interests": [ "sports", "music" ] }, "highlight": { "about": [ "I love to go <em>rock</em> <em>climbing</em>" ] } } ] } }
短語搜索,高亮搜索