使用Elasticsearch我試圖用用戶提供的字符串查詢索引。我的文檔包含標點符號,我想保留這些標點符號,以便在檢索時能正確顯示,但我不希望該標點符號影響任何搜索結果,而不管它是否在查詢中提供。例如:Elasticsearch與NEST - 如何在搜索時忽略標點符號
實施例的文檔:
{ name: "joe's amazing document" }
當查詢使用標準分析器,用於"joe's amazing document"
這樣工作得很好,但是,如果在"joes amazing document"
此用戶類型是不完全匹配和文檔丟失除其他低 - 比賽比賽。
我一直在尋找無濟於事到目前爲止找到如何與NEST做到這一點 - 我懷疑我可能需要使用char_filter such as this,但看着從NEST項目源測試我看不到如何添加用我自己指定的映射自己的定製char_filter,似乎只允許我指定Elasticsearch已經知道(擴展CharFilterBase
只允許指定現有的過濾器的名稱使用)
任何人都可以點我的一個過濾器正確的方向與我想在這裏做什麼?我知道我可能會這樣做都是錯誤的,所以任何幫助都會很棒 - 我可以用NEST或Elasticsearch以某種方式做到這一點,還是我需要以某種方式定製Elasticsearch?或者有沒有我剛纔找不到的解決方案?謝謝!
更新:感謝femtoRgon的答案指向我朝着正確的方向,請參閱my answer下文,瞭解如何在NEST使用Snowball analyzer。
謝謝你,但我發現它只能用其他方式 - 例如。如果文檔包含「joe amazing document」,並且查詢是針對所有格形式的「joe的驚人文檔」(有或沒有撇號),那麼英語分析師正確地指出這應該仍然是最佳匹配。但是,如果文檔包含所有格形式「joe的驚人文檔」,則「joes ...」的查詢不匹配。我想我會繼續嘗試,謝謝。 – embee
這看起來很奇怪。我猜想,你可能會遇到一些奇怪的事情。有一些古怪的案件,它不處理完美。你確定你的英語分析器也被應用於查詢嗎? – femtoRgon
是的我正在使用完全相同的數據測試兩個索引上的各種情況,一個使用每個分析器,然後使用相關分析器在每個分析器上運行查詢。當查詢包含所有格而數據不包含時,我只注意到兩組評分和結果順序之間的差異。 – embee