1

我正在使用http://elasticsearch-dsl.readthedocs.io 0.0.10 和 ES 1.7.3。

我在搜索过程中遇到了一些奇怪的行为:我传递给“应该”查询的一些词会中断搜索,然后搜索找不到该词(我在控制台中看到),但也有很多其他词。

在下面的代码中,“应该”查询由 1000 个子句组成。我的猜测是这个词不在词汇表中(我使用俄语和英语形态配置) - 但不,其他看不见的和特殊的词搜索是好的。所以,当我删除这些“问题”词时,搜索又开始工作了。

这太奇怪了——我用 ES 测试了“问题”词,https://django-haystack.readthedocs.io/en/v2.5.0/index.html然后 ES 可以找到它们......

for i in eat_search_raw_list_1024:
    q = Q('bool',
        #must=[Q('match', text='BBQ')],
        should=[(Q("match", text="\'bad service\'~3") | Q("match", text="\'bad eat\'~3")  .........1000 more................],
        minimum_should_match=1, 
        _name=name_query 
    )            
    s = Search(using=client, index="haystack").query(q).query(~Q("match", text=minus_words))    
    s = s.highlight('text', fragment_size=50)  
    response = s.execute()
4

0 回答 0