2017-08-09 129 views
0

使用Elasticsearch.NET/NEST v5.5,我需要索引Id(GUID)字段直接搜索,但不希望它们分析或包含在全局(_all)搜索中。什么是IncludeInAll(...)的替代品?

我们正在从一个更旧的版本升级,我们以前使用StringPropertyDescriptor.Index(Index.NotAnalyzed)。我们不能再那么做了,而必须做.Index(true),所以这个字段可以用于搜索。

但我们不希望在全局搜索/ _all搜索过程中使用该字段,因此我们打算使用.IncludeInAll(false),但这被标记为已弃用且has already been removed from the source

那么,我们怎样才能映射字段,以便其没有在_all场/全局搜索索引但是

当前的尝试 properties.Keyword(p => p .Name(o => o.SomeId) .IncludeInAll(false) // Deprecated! .Index(true));

回答

2

IncludeInAll()master分支,因为the _all field is to be removed in Elasticsearch 6.0被删除。建议如果您目前使用的是_all字段,并且希望在6.0+版本中实现类似的功能,则应该使用copy_to fields将您要搜索的任何字段复制到您自己的专用全部类字段。

5.x分支中标记为Obsolete,从中分支出NEST 5.x,以便客户使用者知道即将发生的变化。

您目前的尝试是正确的;如果需要,您可以删除.Index(true),因为这是默认行为。

+0

谢谢 - 有道理。 –

相关问题