2017-04-12 8 views
0

私が尋ねる理由 - 私たちは1-3mln +のデータアイテム(〜50GB)があるときファセットの正しい数字を返すことができないAlgoliaを使用しています私たちは検索します。 Algolia techsが確認したのは、検索のタイミングを最適化しているため、不正確な数でデータを返すことが好ましいが、速くなることです。そして彼らは主にFTSに焦点を当てています。何百万ものアイテムを検索するとき、Azure検索でファセットの正しい数が返されます

Azure検索のアプローチが何であるかを確認したいだけです。私たちはそれに頼ることができますか?あるいは、私たちは自分自身をファセッティングする必要がありますか?

大文字と小文字を区別して話すのは簡単です。大量の商品(SKU)を販売できるeコマースアプリ(インターネットショップ)です。ファセットフィルタリングで検索する機能を提供したいと考えています。

答えて

1

アゼルサーチは、ファセットされているフィールドの一意の値の数以上のカウントを要求しない限り、正確なファセットカウントを保証しません。とフィールドのために、しかし

GET /indexes/myindex/docs?facet=category,count:10&api-version=2016-09-01

:これは、正確なカウントを返しますが

GET /indexes/myindex/docs?facet=category,count:3&api-version=2016-09-01

:あなたは10のユニークな値でcategoryフィールドを持っている場合たとえば、これは不正確なカウントを返すことがあります。 countに大きな値を使用する多くの一意の値は、パフォーマンスにマイナスの影響を及ぼします。

これはofficial docs on Azure Search facetsからです:

注countパラメータは一意の用語の数より少ない場合、結果が正確ではないかもしれないこと。これは、ファセッティングクエリがシャード間に分散されるためです。カウントを増やすと、一般にターム・カウントの精度は向上しますが、パフォーマンス・コストは増加します。

興味深いファセット数の精度については、discussion on the MSDN forumsもあります。

+0

ありがとうございます!私が期待していた答えのようなものでした。私たちの側でAz Searchを評価して、巨大なカウントのためのperf lagsを理解しようとします。 – zmische

+0

ちょうど興味深い - あなたのシナリオではカウントの正確さがなぜ重要なのですか?非常に短時間に大量のデータを正確にカウントすることは難しい問題です。そうしなければ誰もがそれをやっています。 :-)あなたが選ぶ最終的な検索ソリューションに関係なく、パフォーマンスの正確さをトレードオフする必要があるかもしれません。 –

+0

ブルース・ジョンストン - ショップサイトでは、「Tシャツ125;帽子-150」のような正しい数をエンド・ユーザーに表示することをお勧めします。その1つ(帽子)を選択するとページ合計で150帽子になり、 350または他の番号ではありません。それは単にユーザーを混乱させるだけです。 – zmische

関連する問題