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

时间:2014-08-05 15:48:03

标签: lucene elasticsearch fuzzy-search

我注意到停用词的模糊运算符不会产生我期望的结果。

这是我的配置:

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 ,那么我就不会受到打击,大概是因为模糊运算符会阻止 被视为一句话。

有没有办法可以将停用词与模糊搜索结合起来?

谢谢, 埃里克

1 个答案:

答案 0 :(得分:0)

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