带有停止词的模糊搜索使用Lucene / ElasticSearch会产生意想不到的结果



我注意到对停止词的模糊运算符没有产生我期望的结果。

这是我的配置:

index :
    analysis :
        analyzer :
            my_analyzer :
                tokenizer : my_tokenizer
                filter : [standard, my_stop_english_filter]
        tokenizer :
            my_tokenizer :
                type : standard
                max_token_length : 512
        filter :
            my_stop_english_filter :
                type : stop
                stopwords : [the]
                ignore_case : true

假设我索引了:棕狐

如果我搜索:棕色的~狐狸~,然后我得到一个命中,如预期的

然而,如果我搜索:和~ brown~ fox~,那么我没有得到匹配,可能是因为模糊运算符阻止了被当作停止词。

是否有一种方法可以将停止词与模糊搜索结合起来?

谢谢,Eric

如果我没记错的话,这是Lucene应该工作的方式,因为它是目前编写的——使用模糊搜索禁用停止词的停止。这将需要一些工作,但是您可以创建一个修改版本的查询解析器,以便在应用模糊搜索时忽略停止词(但是如何处理对看起来像停止词的东西的模糊搜索?)

最新更新