最近使用了es的match和match_phrase毁习,簡(jiǎn)單的做了一個(gè)對(duì)比
首先看看 ”我好帥“ 怎么進(jìn)行分詞蔓彩?并將 我好帥 存入es
GET _analyze
{
? "analyzer": "ik_max_word",
? "text": "我好帥"
}
{
? "tokens": [
? ? {
? ? ? "token": "我好",
? ? ? "start_offset": 0,
? ? ? "end_offset": 2,
? ? ? "type": "CN_WORD",
? ? ? "position": 0
? ? },
? ? {
? ? ? "token": "我",
? ? ? "start_offset": 0,
? ? ? "end_offset": 1,
? ? ? "type": "CN_WORD",
? ? ? "position": 1
? ? },
? ? {
? ? ? "token": "好",
? ? ? "start_offset": 1,
? ? ? "end_offset": 2,
? ? ? "type": "CN_WORD",
? ? ? "position": 2
? ? },
? ? {
? ? ? "token": "帥",
? ? ? "start_offset": 2,
? ? ? "end_offset": 3,
? ? ? "type": "CN_WORD",
? ? ? "position": 3
? ? }
? ]
}
現(xiàn)在搜索 我好? 卧秘,會(huì)被分詞為? 我好 灾茁、我迂尝、好? 三個(gè)分詞丈钙,則都在分詞庫(kù)匹配上了驰凛。
match:只要匹配上任何一個(gè)分詞胸懈,則返回
match_phrase:必須全部匹配,還要索引位置相鄰
例如 現(xiàn)在搜 我?guī)浨∠欤?和 帥 都匹配上了趣钱,但是索引位置不相鄰,所以不會(huì)返回?cái)?shù)據(jù)
GET /kehujbxx_index_v1/kehujbxx_info/_search
{
? "query": {
? ? "bool": {
? ? ? "should": [
? ? ? ? {
? ? ? ? ? "match_phrase": {
? ? ? ? ? ? "xingming": {
? ? ? ? ? ? ? "query": "我?guī)?,
? ? ? ? ? ? "analyzer":"ik_max_word"
? ? ? ? ? ? }
? ? ? ? ? }
? ? ? ? }
? ? ? ]
? ? }
? }
}