2

製品を検索するためにelasticsearchを使用しようとしています。たとえば、製品が車の場合、「色」、「ブランド」、「モデル」、「走行距離」などのフィールドがあります...衣服の場合は、「色」、「サイズ」、 ... このすべての情報をエラスティックにインデックス付けして、aaa km と bbb km の間の km で車を検索したり、衣服や他の製品と同じ xxxx モデルを検索したりしたいと思います。

Elasticsearch でそのようなフィールドを作成するにはどうすればよいですか? すべての製品を同じインデックスに入れたいので、ユーザーはすべての製品を検索できますが、ユーザーが製品のタイプを検索する場合、この種類の製品に従って詳細を指定できるはずです。

配列フィールドについて考えていましたが、それは、一部のフィールドが一部の製品に関連していなくても、すべての製品にすべてのタイプの製品に対応するすべてのフィールドがあるということですか (つまり、衣服には km フィールドがありますか??)? または、各製品に対応する必要な情報だけを索引付けすることは可能ですか?

ありがとう

4

1 に答える 1

0

タイプを使用できます。color、brand、model、k などのフィールドを持つ car というタイプを作成し、color、size などのフィールドを持つ布というタイプを作成します。

1 つのインデックスに多くの型を含めることができます。これには、次の 2 つのリンクが役立ちます。

  1. インデックスの作成

  2. タイプの作成とインデックスへのマッピング

タイプ全体を簡単に検索できるため、次のような検索を発行して、そのインデックス内のすべてのタイプからすべてのドキュメントを返すことができます。

curl -XGET http://localhost:9200/_search?pretty=true -d '{"query":{"matchAll":{}}}'

追加情報 -タイプ間の検索

Elasticsearch の機能を利用して半構造化ドキュメントをインデックス化しないため、配列フィールドを使用することはお勧めできません。

ではごきげんよう。

于 2013-06-24T20:41:02.633 に答える