C # NEST ElastichSearch, но не индекс

Я хочу, чтобы поле 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 не индексировать его.


Есть идеи?

10000