C # NEST ElastichSearch хранилище свойств, но не индекс - PullRequest
0 голосов
/ 23 октября 2018

Я хочу, чтобы поле 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 Ответ

0 голосов
/ 23 октября 2018

Если вы хотите, чтобы поле не было проиндексировано, вы можете использовать NEST Attributes, чтобы показать, что поле не должно быть проиндексировано.

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 не индексировать его.

...