我將索引可能在其全文本體中包含任何特殊/保留字符的文檔。例如 「PDF/A是可移植文檔格式的ISO標準化版本...」elasticsearch - 全文搜索帶有特殊/保留字符的單詞
我希望能夠搜索pdf/a
而不必轉義正斜槓。
我應該如何分析我的查詢字符串以及我應該使用哪種類型的查詢?
我將索引可能在其全文本體中包含任何特殊/保留字符的文檔。例如 「PDF/A是可移植文檔格式的ISO標準化版本...」elasticsearch - 全文搜索帶有特殊/保留字符的單詞
我希望能夠搜索pdf/a
而不必轉義正斜槓。
我應該如何分析我的查詢字符串以及我應該使用哪種類型的查詢?
爲了支持含有保留字符我現在使用的Simple Query String Query
(https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-simple-query-string-query.html)
作爲不使用查詢解析器它是有點有限的(例如,沒有場的查詢等id:5
)查詢,但它解決了目的。
默認的standard
分析器將標記一個這樣的字符串,以便「PDF」和「A」是單獨的標記。 「A」令牌可能會被停止令牌過濾器截斷(請參閱Standard Analyzer)。因此,如果沒有任何自定義分析儀,您通常只會收到任何帶有「PDF」的文檔。
您可以嘗試使用standard
分析儀創建您自己的分析儀,其中包含Mapping Char Filter。這個想法可能會在索引和查詢時間將「PDF/A」轉換爲「pdf_a」之類的東西。一個簡單的匹配查詢就可以正常工作。但這是一個非常簡單的方法,您可能想考慮如何在內容中使用「/」字符,並使用稍微複雜的正則表達式過濾器,這也不是完美的解決方案。
對不起,我完全錯過了你必須逃避角色的觀點。如果事實證明這對你沒有幫助,你能否詳細說明你的用例?
你可以分享你的嘗試?你的映射和查詢看起來是什麼樣的起點? – eemp