Я хочу, чтобы поле B сохранялось в Elasticsearch, но не индексировалось. Когда я ищу "Nash"
я не хочу искать в поле B. Таким образом, поле B не индексируется в упругом состоянии.
[ElasticsearchType(Name = "ES6")]
public class ES6
{
public string A { get; set; }
public string B { get; set; }
}
elasticClient.IndexDocument(new ES6 { A = "John", B = "Nash" });
elasticClient.IndexDocument(new ES6 { A = "Nash", B = "John" });
Всего 1 ответ
Если вы хотите, чтобы поле не индексировалось, вы можете использовать Attributes
NEST, чтобы показать, что поле не должно индексироваться.
https://www.elastic.co/guide/en/elasticsearch/client/net-api/current/attribute-mapping.html
В вашем примере это, вероятно, будет примерно так:
[ElasticsearchType(Name = "ES6")]
public class ES6
{
[Text]
public string A { get; set; }
[Keyword(Index = false)]
public string B { get; set; }
}
При установке этого keyword
убедитесь, что он не анализируется, и установка Index = false
указывает Elastic не индексировать его.