2016-11-30 8 views
1

私はpython 2.7 のトーンパッケージを使って検索機能を作ったが、スケーラビリティを高めるためにElasticSearchを使いたい。 は私がpython djangoで検索エンジンを作る

(blue or small) purse and not leather 
  • のようなブール検索をしたい、私は干し草の山必要か、単にElasticSearchクライアントを使用して十分ですか?
  • 上記の例のように複雑な予測不可能なブール検索を行うにはどうすればよいですか(単語の論理構造は不明です)。

私はドキュメント内に「SearchQuery」があります。これは実行時に検索の組み合わせを知る必要があることを示しています。

答えて

0

私は考え出し調査:

  • 私はすべてのよう干し草の山を必要としません。
  • ブーリアン検索は、弾性検索の「単純検索検索」方法で行うことができますが、 "+ - |" 「AND」「NOT」「OR」ではなく「OR」の代わりに、それは単なる単語置換の問題です。
  • 管理ページの検索を上書きしてelasticsearchを使用し、その上にフィルタクエリを適用できます。しかし、弾性検索は1ページあたり10000件以上の結果を返すことはできません...複数のページを読むことはできますが、最初の10000 ids(10000を超える結果がある場合)のみを取得し、管理者に渡してクエリを実行します。mymodel.objects.filter(id__in=[my_ids])

誰かがより良い方法を知っている場合、私はこれを行うことについて非常に満足していません、私に教えてください。