我是新來的彈性搜索。我試圖修復我們的搜索,以便它允許用戶搜索html標籤中的內容。目前,我們正在使用空格標記器,因爲我們需要它使用連字符名稱返回結果。因此,aname123-suffix project
被索引爲["aname123-suffix", "project"]
,用戶搜索"aname123-*"
會返回正確的結果。如何獲得彈性搜索以返回尖括號內的結果?
我的問題出現了,因爲我們也希望能夠在html標籤內搜索內容。因此,例如對於名爲<aname123>-suffix project
的項目,我們希望能夠輸入搜索詞<aname123>-*
並獲取正確的結果。
該索引具有空白標記化器的正確標記,即["<aname123>-suffix", "project"]
,但是當我的搜索字符串是"\<aname123\>\-suffix"
或"\\<aname123\\>\\-suffix"
時,彈性搜索不會返回任何結果。
我認爲解決之道在於無論是在
- 修改搜索字符串,以便彈性搜索返回
<aname123>-suffix
當我問它;或 - 能夠索引標籤內分別從空白令牌的內容,即
["<aname123>-suffix", "project", "aname123", "suffix"]
到目前爲止,我一直在通過改變索引接近它,但我還沒有成功。標準標記器將允許標記內容的搜索結果,但它無法返回aname123-*
的搜索結果。目前我分析儀的設置是這樣的:
{ "analysis":
{ "analyzer":
{ "my_whitespace_analyzer" :
{"type": "custom"
{"tokenizer": "whitespace},
{"filter": ["standard", "lowercase", "stop"]}
}
},
{ "my_tag_analyzer":
{"type": "custom"
{"tokenizer": "standard"},
{"filter": ["standard", "lowercase", "stop"]}
}
}
}
}
我可以創建自定義字符過濾器,剝離該<和>,所以我的索引中包含aname123
;但由於某些原因,在<aname123>*
上搜索時,彈性搜索仍不會返回正確的結果。但是,當我使用標準分析儀時,該索引包含aname123
和它返回<aname123>*
的預期結果...彈性搜索中尖括號有什麼特別之處?
謝謝,我看着但它會去掉標籤內的內容以及尖括號。我想保留標籤內的內容。 ''應該索引到'atag' ... –
GLaDOS
但是這讓我覺得...我應該可以使用char過濾器來代替'<' and '>'沒有什麼... – GLaDOS
我沒有看太緊密,但我的理解是,這是基於我鏈接的要點示例 – sinneduy