就像match
查詢對於標準全文檢索是一種最常用的查詢一樣,當你想找到彼此鄰近搜尋詞的查詢方法時,就會想到match_phrase
查詢 。
get /my_index/my_type/_search}}類似
match
查詢,match_phrase
查詢首先將查詢字串解析成乙個詞項列表,然後對這些詞項進行搜尋,但只保留那些包含 全部 搜尋詞項,且 位置 與搜尋詞項相同的文件。 比如對於quick fox
的短語搜尋可能不會匹配到任何文件,因為沒有文件包含的quick
詞之後緊跟著fox
。
match_phrase
查詢同樣可寫成一種型別為phrase
的match
查詢:
"match":當乙個字串被分詞後,這個分析器不但會 返回乙個詞項列表,而且還會返回各詞項在原始字串中的 位置 或者順序關係:}
get /_analyze?analyzer=standard返回資訊如下:quick brown fox
,,]}
position
代表各詞項在原始字串中的位置。
位置資訊可以被儲存在倒排索引中,因此match_phrase
查詢這類對詞語位置敏感的查詢, 就可以利用位置資訊去匹配包含所有查詢詞項,且各詞項順序也與我們搜尋指定一致的文件,中間不夾雜其他詞項。
乙個被認定為和短語quick brown fox
匹配的文件,必須滿足以下這些要求:
如果以上任何乙個選項不成立,則該文件不能認定為匹配。
本質上來講,match_phrase
查詢是利用一種低階別的span
查詢族(query family)去做詞語位置敏感的匹配。 span 查詢是一種詞項級別的查詢,所以它們沒有分詞階段;它們只對指定的詞項進行精確搜尋。
值得慶幸的是,match_phrase
查詢已經足夠優秀,大多數人是不會直接使用span
查詢。 然而,在一些專業領域,例如專利檢索,還是會採用這種低級別查詢去執行非常具體而又精心構造的位置搜尋。
}
},"from": 0,
"size": 10,
"sort":
}
,
"hits":
},},
},},
},},
},},},}
]}}
短語匹配 match phrase以及slop引數
資料 post my index my type bulk 第一步 精確匹配,我們查詢title為quick brown fox的記錄 輸入命令 get my index my type search query match phrase title quick brown fox 看結果我們可以得...
編譯原理 短語 直接短語 控制代碼 素短語
如果 and a 則稱 是句型 的相對於變數a的短語 如果 and a 則稱 是句型 的相對於變數a的直接 簡單 短語 最左直接短語叫做控制代碼 其實最簡單的判斷方法直接畫出語法樹了。文法s l as a l l,s s 分析 s,a 1.先畫出語法樹 2.判斷短語 乙個句型的語法樹中任一子樹葉節點...
編譯原理 短語 直接短語 控制代碼 素短語
如果 and a 則稱 是句型 的相對於變數a的短語 如果 and a 則稱 是句型 的相對於變數a的直接 簡單 短語 最左直接短語叫做控制代碼 其實最簡單的判斷方法直接畫出語法樹了。文法s l as a l l,s s 分析 s,a 1.先畫出語法樹 2.判斷短語 乙個句型的語法樹中任一子樹葉節點...