0

私はelasticsearch(および基礎となるLuceneエンジン)が初めてです。

ドキュメントに関するいくつかのメタデータを保存しています。たとえば、単一のドキュメントは次のように記述できます。

UniqueHash: ABC123
CreatedBy: John Smith
ApplicationName: MSExcel
ContentType: application/vnd.ms-excel
WordCount: 7000
...

これはすべて、インデックス作成/検索には非常にうまく機能しますが、ファセットになると興味深いものになります。

(たとえば)ファセットCreatedByが返されます

John: 1
Smith: 1

または ContentType で

application: 1
vnd.ms: 1
excel: 1

これらはどちらも望ましいものではありません。フィールドの内容を直接制御することはできません (つまり、基になるデータを変更することはできません)。途中で変換を実行できますが、それは危険なデータを保存することになり、検索が期待どおりに機能するため、間違ったアプローチのように感じます。

各フィールド (または少なくとも指定されたフィールド) の内容全体をファセットに使用する値として扱うように、elasticsearch を納得させるにはどうすればよいですか?

4

1 に答える 1

1

マルチ フィールドタイプを使用して、フィールドを 2 回インデックス化できます。インデックスを再作成した後、分析されたバージョンのフィールドを引き続き検索に使用し、「変更されていない」バージョンのフィールドをファセットに使用できます。

于 2012-10-15T14:41:23.950 に答える