2016-11-30 111 views
1

我已经使用Python 2.7 色调包进行了搜索功能,但为了使其更具可伸缩性,我想使用ElasticSearch。 我想要做的布尔搜索像在Python中制作搜索引擎django

(blue or small) purse and not leather 
  • 我需要草垛或者只是使用ElasticSearch客户端还不够吗?
  • 我该如何做上面的例子那样复杂的不可预测的布尔搜索(单词的布尔结构是未知的)?

我在文档中发现的所有内容都是SearchQuery,它要求我在运行时间之前知道搜索组合。

回答

0

我调查我想通了:

  • 我不需要大海捞针所有。
  • 布尔搜索可以通过弹性搜索中的“简单查询搜索”方法完成,但它使用“+ - |”而不是“AND”“NOT”“OR”,所以它只是一个词替换的问题。
  • 您可以覆盖管理页面的搜索以使用elasticsearch,然后对其应用过滤器查询。但是,弹性搜索每页可返回不超过10000个结果...您可以读取多个页面,但我最终只检索了前10000个ID(如果结果超过10000个)并将其传递给管理员以执行查询mymodel.objects.filter(id__in=[my_ids])

我不是很高兴这样做,所以如果有人知道更好的办法,让我知道。