我想構建一個應用程序,其中匹配要求文檔中的每個標記至少包含在查詢中一次!!!Elasticsearch - 檢查使用同義詞的查詢中是否包含文檔
請注意它的方式比標準的期望。所以文件現在相當小,而查詢可能會很長。例如:
文件:
"elastic super cool".
有效查詢的比賽將是
"I like elastic things since elasticsearch is super cool"
我設法從彈性搜索匹配的令牌的數量(見https://groups.google.com/forum/?fromgroups=#!topic/elasticsearch/ttJTE52hXf8)。 所以在上面的例子中,3個匹配(=文檔的長度)意味着查詢匹配。
但是,我怎麼能結合這與同義詞???
假設「酷」的同義詞是「好」,「好」和「好」。通過使用同義詞標記過濾器,我設法將同義詞添加到文檔中的每個位置。
因此,以下四個文件各有3令牌上面的查詢相匹配:
"elastic super nice"
"elastic nice cool"
"nice good great"
"good great cool"
但只有第一場比賽是一個有效的匹配!
我怎樣才能避免每個同義詞匹配算作一個匹配,儘管它們在文檔中表示相同的標記?
任何想法如何解決這個問題?
,我讀了滲濾壺可能會解決這個問題,但我現在還不能確定是否perculators將與同義詞工作,我想它的方式......
想法?
你能解決這個問題嗎?您是否嘗試使用帶有同義詞過濾器的Percolator? – vaidik