我想在我的ealstic搜索結果中用仇恨詞過濾掉文檔。目前我們在所有單詞列表的每個搜索查詢中都有布爾過濾器。而這將導致噸查詢速度慢的,因爲恨字列表很長(這麼多的仇恨周圍:()用仇恨詞過濾Elasticsearch結果的最佳解決方案是什麼?
我想知道什麼是最好的做法,這種垃圾郵件/仇恨的話過濾。
下面是我們正在考慮:
預過程:掃描文檔的索引之前,因此將它們標記爲壞的或不索引他們 問題:該文件是由幾個進程索引,也很難強制規定任何一個新的組件寫一些。
創建一個percolator並定期運行(不確定最佳頻率和時間),將所有帶有不良詞語的文檔標記爲「badDoc」:true。因此在所有查詢中都有一個過濾器。 問題:不知道對性能的影響,由於過濾器的定期運行,在所有查詢紀律其次同樣的問題,以排除badDoc
我個人傾向純粹ES解決方案,我相信這不是一個新問題,因此尋求專家指導和最佳實踐。
感謝和問候 Varun的
使用percolator查詢將文檔「標記」爲「壞」_before_它被索引。因此,無論什麼時候進行更新或索引操作,都需要將文檔拿到文檔上,然後針對滲濾器運行,如果匹配,則將其標記爲不合格,然後繼續進行索引。至於已經索引的文檔,您需要運行查詢來查找並標記它們。 –
感謝Andrei的迴應。在每個索引之前運行percolator會對性能產生影響嗎? – lazywiz
運行percolator查詢會有性能影響,但這會在索引時發生。根據您索引/更改文檔的頻率,它可以產生更大的影響或更低。但是您可以將更復雜的過濾部分從日常查詢中移走。 –