0

Lucene 検索ソリューションをまとめようとしていますが、開始方法がわかりません。

  • 私のサイトでは、モデル内の 5 つの異なるタイプのオブジェクトに 1 回の検索を適用したいと考えています。
  • データを適切に表示できるように、タイプを区別する方法を使用して、結果を 1 つのリストとして返し、最も一致するものから順に並べたいと考えています。
  • 私たちのシステムは、サイトと呼ばれるものに分割されています。サイトごとに 5 つの異なるモデル オブジェクトのインデックスを作成したいと考えています。検索は常にサイトごとに行われます。

最適なパフォーマンスを得るために、このシステムのインデックスをどこから開始すればよいかわかりません。また、このセットアップの検索を実装する最善の方法もわかりません。アドバイス、articalse、および例は大歓迎です。

編集:

広すぎると言われているので、

サイト 1、サイト 2、サイト 3 の 3 つのサイトがあるとします。

犬、猫、ハムスターのインデックスを作成しているとします。これらの各タイプのレコードは、サイトにリンクされています。

したがって、たとえば、私のデータは (Type、Name、SiteId) である可能性があります

Dog, "Fido" 1
Cat, "Sprinkles", 2
Hamster, "Sprinkles", 2
Cat, "Mr. Pretty", 3
Cat, "Mr. Pretty 2", 3

そのため、「Mr. Pretty」を検索するときは、特定のサイト ID をターゲットにしたいと考えています。サイト ID 1 に反対すると、結果は 0 になります。サイト ID 3 を検索すると、

Mr. Pretty
Mr. Pretty 2

サイト 2 で「Sprinkles」を検索すると、一方の結果は猫で、もう一方の結果はハムスターであることがわかります。

この種の検索インデックスを達成するための最善の方法は何ですか?

4

1 に答える 1

2

siteid:3goalie7960が提案したように、このサイトからのみドキュメントを取得するために、各ドキュメントに「SiteID」を追加し、クエリと同様のクエリ用語を追加できます。また、異なるサイトごとにフィルターを作成して保存することにより、このパフォーマンスを向上させることができるため、対応するクエリに適用できます。

同じインデックス内の異なるタイプに関しては、同じ戦略を使用できます。対応するタイプ(おそらくIDのみ)を使用して、ドキュメントごとに「タイプ」フィールドを作成します。Elasticsearchは同じ戦略を使用して、同じインデックスに異なる識別可能なタイプを設定します。繰り返しになりますが、タイプにフィルターを使用してクエリを高速化できます(Elasticsearchも同じことを行います)。

于 2012-04-04T19:36:24.040 に答える