控制弹性搜索字段如何为分面标记

时间:2012-10-15 14:36:47

标签: search lucene elasticsearch

我是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将每个字段(或至少是指定字段)的全部内容视为用于分面的值?

1 个答案:

答案 0 :(得分:1)

您可以使用Multi Field类型为字段编制索引两次。重建索引后,您将能够继续使用字段的分析版本进行搜索,并使用字段的“未触摸”版本进行构面。