【问题标题】:NEST ELASTICSEARCH Mappings does not worksNEST ELASTICSEARCH 映射不起作用
【发布时间】:2015-07-14 16:53:43
【问题描述】:

我是 NEST ElasticSearch 的新手,并且有一个名为 document 的类,如下所示

[ElasticType(Name = "EnterpriseSearch.Document")]
public class Document
{

    public Document()
    {
    }

    [ElasticProperty(Type = FieldType.Integer, Index = FieldIndexOption.NotAnalyzed)]
    public int DocumentId { get; set; }

    [ElasticProperty(Type = FieldType.String, Index = FieldIndexOption.NotAnalyzed)]
    public string Source { get; set; }

    [ElasticProperty(Type = FieldType.String, Index = FieldIndexOption.NotAnalyzed)]
    public string Name { get; set; }

    [ElasticProperty(Type = FieldType.String, Index = FieldIndexOption.Analyzed, IndexAnalyzer = "snowballstopAnalyzers", TermVector = TermVectorOption.WithPositionsOffsets)]
    public string Documents { get; set; }
}

我正在创建索引并尝试使用以下代码映射它。

public void CreateDocumentIndex(string indexName = null)
{
    if (!this.client.IndexExists(indexName).Exists)
    {
        IndexSettings settings = GetIndexSettings();

        this.client.CreateIndex(indexName, c => c
            .InitializeUsing(settings)
            .AddMapping<Document>
            (m => m.Properties(ps => ps.String(a => a.Name(o => o.Documents)))));

        this.client.Map<Document>(p => p.MapFromAttributes());
    }
}

基本上我想将 IndexAnalyzer 应用于 Document 类中的属性 Documents。但它不起作用。在调试时,我注意到如果我使用下面的代码检查属性,映射计数为零

var r = this.client.GetIndexSettings(i => i.Index(indexName));

有什么帮助吗?

马尼什

【问题讨论】:

  • 能否分享一下GetIndexSettings 方法以及如何定义snowballstopAnalyzers 分析器?
  • 你用的是什么版本的nest?

标签: elasticsearch nest


【解决方案1】:

像这样检查索引的映射:

http://10.0.0.11:9200/{index_name}/{mappingType}/_mapping?pretty

大多数情况下,映射被分析器的错误实现“杀死”。如果你能把你所拥有的完整的例子,它会更容易帮助你。

【讨论】:

    猜你喜欢
    • 2015-12-01
    • 2011-09-07
    • 2020-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多