在ES中,可以實現逐詞切分的分詞器是NGram。
Ngram分詞的公文地址:?
",分詞的結果是["s "," h "," I "," n "," y "," k "," e "," @ "," 1 "," 8 "," 9 ","。”、“c”、“n。
& ltpre?name="code "?class="javascript " >/index_name/
{?
“設置”:{?
「分析」:?{?
“分析器”:{
" charSplit ":?{?
“類型”:“自定義”,?
“記號賦予器”:" ngram_tokenizer "?
}?
},?
“記號賦予器”:{?
" ngram_tokenizer ":?{?
“類型”:“nGram”,?
“min_gram”:"1",?
" max_gram ":?"1",?
" token_chars ":?[?
“信”,?
“數字”,?
“標點”?
]?
}?
}?
}?
}?
}在上面的語句中,構建了壹個名為“charSplit”的分析器。它使用壹個名為“ngram_tokenizer”的Ngram分詞器。
您可以使用下面的語句測試charSplit分析器,您可以看到逐字的效果:
卷曲?-帖子?",?
“類型”:“短語”,?//類型被指定為短語?
“泔水”:0,//slope指定允許每個相鄰單詞相隔多遠。在此將其設置為0以實現完美匹配。?
“字段”:[?
“發件人”?
],?
“分析器”:“charSplit”,?//分析器指定為charSplit?
" max_expansions ":?1
}?
},?
“突出顯示”:{//測試高光是否正常?
"前置標簽":?[?
“& ltb >;?
],?
“post_tags”:[?
“& lt/b & gt;?
],?
"碎片大小":?100,?
"片段數量":?2,?
"要求_字段_匹配":?真的嗎?
“字段”:{?
“發件人”:{}?
}?
}?
短語查詢本來的功能就是做短語查詢,短語查詢有壹個重要的特點:順序。我們利用其匹配的有序性,將slop限制為0,這樣就可以實現完全的匹配查詢。
上述語句返回的結果是:
{?
“拍了”:18,?
"超時":?假的,?
" _shards ":?{?
“總計”:9,?
“成功”:9,?
“失敗”:0?
},?
“點擊數”:{?
“總計”:1,?
" max_score ":?0.40239456,?
“點擊數”:[?
{?
" _index ":?“索引名稱”,
" _type ":?“類型名稱”,
" _id ":?“AU9OLIGOZN4dLecgyoKp”,?
" _score ":?0.40239456,?
" _source ":?{?
“發件人”:"18977314000?& lt18977314000 @ 189 . cn & gt;,?李x?& lt18977314000 @ 189 . cn & gt;,?秦x?& lt18977314000 @ 189 . cn & gt;,?劉x?& lt18977314000 @ 189 . cn >?
},?
“突出顯示”:{?
“發件人”:[?
"18977314000?& lt18977314000 & lt;b & gt@ & lt/b & gt;& ltb & gt1 & lt;/b & gt;& ltb & gt8 & lt/b & gt;& ltb & gt9 & lt/b & gt;& ltb & gt。& lt/b & gt;& ltb & gtc & lt/b & gt;& ltb & gtn & lt/b & gt;& gt,?李x?& lt18977314000 & lt;b & gt@ & lt/b & gt;& ltb & gt1 & lt;/b & gt;& ltb & gt8 & lt/b & gt;& ltb & gt9 & lt/b & gt;& ltb & gt。& lt/b & gt;& ltb & gtc & lt/b & gt;& ltb & gtn & lt/b & gt;& gt,?秦淳x?& lt18977314000 & lt;b & gt@ & lt/b & gt;& ltb & gt1 & lt;/b & gt;& ltb & gt8 & lt/b & gt;& ltb & gt9 & lt/b & gt;& ltb & gt。& lt/b & gt;& ltb & gtc & lt/b & gt;& ltb & gtn & lt/b & gt;& gt,?劉x?& lt189773140"?
]
}?
}?
]?
}?
}至此,實現了完全匹配查詢。在實際環境中,使用NGram作為文字分析器時會更加細致。例如,有些字符需要用停用詞過濾掉。這些細節可以根據實際需要在構造分析器的時候添加濾波器來實現,這裏不再贅述。