0

我是弹性搜索(和底层 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

您可以使用多字段类型索引您的字段两次。重新索引后,您将能够继续使用字段的分析版本进行搜索,并使用字段的“未触及”版本进行构面。

于 2012-10-15T14:41:23.950 回答