2017-08-09 60 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

謝謝 - 有道理。 –