es7.3.2中文+拼音分词 排除同音字
例如:
搜索“fuqiang”, “付強(qiáng)”,"腹腔","富強(qiáng)"?可以搜索到 這個(gè)可以接受
搜索: “付強(qiáng)”, "腹腔","富強(qiáng)"?可以搜索到 這個(gè)不能接受?
setting和mapping怎么寫(xiě)可以實(shí)現(xiàn)? 搜索: “付強(qiáng)”, 排除 "腹腔","富強(qiáng)"?呢?
說(shuō)明: 使用ES 7.3.2, 并且已經(jīng)安裝了ik 和pinyin 插件
setting 定義
mapping定義
部分mapping:
?
? "pname" : {
? ? ? ? ? "type" : "text",
? ? ? ? ? "fields" : {
? ? ? ? ? ? "keyword" : {
? ? ? ? ? ? ? "type" : "keyword"
? ? ? ? ? ? }
? ? ? ? ? },
? ? ? ? ? "analyzer" : "tt_ik",
? ? ? ? ? "search_analyzer" : "tt_ik_search"
? ? ? ? },
? ? ? ? "productLayout" : {
? ? ? ? ? "type" : "keyword"
? ? ? ? }
?
部分setting:
"settings" : {
? ? ? "index" : {
? ? ? ? "number_of_shards" : "1",
? ? ? ? "blocks" : {
? ? ? ? ? "read_only_allow_delete" : "false"
? ? ? ? },
? ? ? ? "max_result_window" : "1000000",
? ? ? ? "analysis" : {
? ? ? ? ? "analyzer" : {
? ? ? ? ? ? "tt_ik" : {
? ? ? ? ? ? ? "filter" : [
? ? ? ? ? ? ? ? "lowercase","full_pinyin"
? ? ? ? ? ? ? ],
? ? ? ? ? ? ? "char_filter" : [
? ? ? ? ? ? ? ? "html_strip"
? ? ? ? ? ? ? ],
? ? ? ? ? ? ? "tokenizer" : "ik_max_word"
? ? ? ? ? ? },
? ? ? ? ? ? "tt_ik_search" : {
? ? ? ? ? ? ? "filter" : [
? ? ? ? ? ? ? ? "lowercase","full_pinyin"
? ? ? ? ? ? ? ],
? ? ? ? ? ? ? "char_filter" : [
? ? ? ? ? ? ? ? "html_strip"
? ? ? ? ? ? ? ],
? ? ? ? ? ? ? "tokenizer" : "ik_smart"
? ? ? ? ? ? }
? ? ? ? ? },
? ? ? ? ? ? "filter": {
? ? ? ? ? ??
? ? ? ? ? ? "full_pinyin" : {
? ? ? ? ? ? ? "keep_joined_full_pinyin" : "true",
? ? ? ? ? ? ? "keep_none_chinese_in_first_letter" : "false",
? ? ? ? ? ? ? "lowercase" : "true",
? ? ? ? ? ? ? "none_chinese_pinyin_tokenize" : "false",
? ? ? ? ? ? ? "keep_none_chinese_in_joined_full_pinyin" : "true",
? ? ? ? ? ? ? "keep_original" : "true",
? ? ? ? ? ? ? "keep_first_letter" : "false",
? ? ? ? ? ? ? "keep_separate_first_letter" : "false",
? ? ? ? ? ? ? "type" : "pinyin",
? ? ? ? ? ? ? "keep_none_chinese" : "true",
? ? ? ? ? ? ? "limit_first_letter_length" : "16",
? ? ? ? ? ? ? "keep_full_pinyin" : "false"
? ? ? ? ? ? }
? ? ? ? ? }
? ? ? ? }
數(shù)據(jù)量較大 只用到了全拼
我現(xiàn)在的理解是? 新建索引的時(shí)候 tt_ik? ? pname字段新建了拼音的倒排索引,搜索的時(shí)候輸入了? “付強(qiáng)”? 搜索分析器tt_ik_search 也引入了拼音 filter? 搜索“付強(qiáng)”->"fuqiang"? ? 數(shù)據(jù)量100w左右
修改:
把tt_ik_search 的filter 去掉full_pinyin ,看起來(lái)可以達(dá)到目的,反推過(guò)去意思就是 建立索引文檔的時(shí)候 “腹腔”、 “付強(qiáng)” ->“fuqiang”,但是實(shí)際搜索的時(shí)候 輸入 “付強(qiáng)” 用的是tt_ik_search不會(huì)轉(zhuǎn)換為 “fuqiang”去搜索,就可以達(dá)到上面的搜索效果,如果用戶輸入的是 “fuqiang”用的是tt_ik_search 底層的索引文檔是可以匹配到 “腹腔”、 “付強(qiáng)” 。暫時(shí)可以達(dá)到業(yè)務(wù)目的,只是支持全拼 ,暫時(shí)還沒(méi)支持 “fu強(qiáng)” 搜索, 搜索場(chǎng)景比較復(fù)雜 中文,拼音,英文,中文還要ik,jieba 分詞
總結(jié)
以上是生活随笔為你收集整理的es7.3.2中文+拼音分词 排除同音字的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: c语言编fft算法程序,FFT算法的C语
- 下一篇: [vue] 在vue中使用this应该注