什么是IncludeInAll(...)的替代品?
问题描述:
使用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));
答
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)
,因为这是默认行为。
谢谢 - 有道理。 –