C#NEST ElastichSearch属性存储但不包含索引

时间:2018-10-23 08:34:31

标签: c# elasticsearch nest

我想将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 :(得分:0)

如果您希望不对字段建立索引,则可以使用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不要为其编制索引。