【问题标题】:Elasticsearch Nest doesn't insert documentElasticsearch Nest 不插入文档
【发布时间】:2018-11-30 15:18:27
【问题描述】:

我有两种 POCO 类型 PdfIndex 和 PieceEM:

 public class PdfIndex
 {
    public string Path { get; set; }
    public PieceEM Pdf { get; set; }
 }

还有 PieceEM:

public class PieceEM
{
    public string Id { get; set; }
    public string Content { get; set; }
    public string Language { get; set; }
    public string Profession { get; set; }
    public string DeparmentOfPiece { get; set; }
    public string PieceType { get; set; }
    public string PricingType { get; set; }
    public string PieceId { get; set; }
    public string Author { get; set; }
}

所有 pdf 都已读取但未编入索引。 代码没有失败,只是这个地址没有数据 http://localhost:9200/fullegalpieces/_search?pretty=true

这是我的索引代码:

public void IndexPiece(IEnumerable<PdfIndex> pdfIndexes)
    {
        foreach (var pdfIndex in pdfIndexes)
        {
            if (!File.Exists(pdfIndex.Path)) continue;

            var pdfReader = new PdfReader(pdfIndex.Path);
            string text = string.Empty;
            for (int page = 1; page <= pdfReader.NumberOfPages; page++)
            {
                text += PdfTextExtractor.GetTextFromPage(pdfReader, page);
            }
            pdfReader.Close();

            PieceEM _pdf = pdfIndex.Pdf;
            _pdf.Content = IndexDocumentHelper.RemoveSpecialChar(text);
            _pdf.Content += _pdf.Author;

            _elasticClient.Index(_pdf, i => i
            .Type<PieceEM>());
        }
    }

路径正确。 该pdf在本地存在, 我的帖子操作在这里:

     [HttpPost]
    public void IndexPiece(List<PdfIndex> pdfIndexes)
    {
        var elastic = new ElasticHelper.ElasticSearchHelper("http://localhost:9200/", "fullegalpieces");
        elastic.IndexPiece(new List<PdfIndex> {
            new PdfIndex
            {
                Path = @"C:\Users\Yılmaz\Desktop\özgeçmiş.pdf",
                Pdf = new PieceEM
                {
                    Id = "042f01f8-befc-40a7-9339-fa4fffe2c4e0",
                    PieceId = "bd7aaa9c-7c81-4675-a037-0fa56ad09003",
                    Language = "1",
                    PieceType ="2",
                    PricingType = "1",
                    Profession = "1",
                    Author = "ykaraagac",
                    DeparmentOfPiece = "1"
                }
            }
        });


    }

我有类似的例子,但这不起作用。 我能做些什么?

谢谢。

【问题讨论】:

  • 当您尝试索引 1 个文档时,您可以加入弹性响应吗?索引是空的还是已经存在,在这种情况下,加入映射。您对弹性日志文件有任何错误吗?
  • 我的索引喜欢在这里:{ take: 35, timed_out: false, _shards: { total: 5, success: 5, skipped: 0, failed: 0 }, hits: { total: 0, max_score: null, 点击数: [ ] } }
  • 如何查看elasticsearch日志文件?
  • 在您的弹性搜索服务器(或文件夹,如果他在本地主机上),在 /logs 中,检查异常。您的索引还没有现有的映射?
  • ` public void CreatePieceIndex(string name) { var createIndexDescriptor = new CreateIndexDescriptor(name) .Mappings(ms => ms.Map(m => m.AutoMap())); var response = _elasticClient.CreateIndex(createIndexDescriptor); } ` @LeBigCat 这个方法正在运行

标签: c# elasticsearch asp.net-web-api nest


【解决方案1】:

我检查了我的本地日志文件,我看到了这个:

我索引了不同的 POCO 类型,而不是 PieceEM

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-13
    • 1970-01-01
    • 1970-01-01
    • 2016-06-17
    • 2015-08-18
    • 2022-08-10
    • 1970-01-01
    • 2013-07-22
    相关资源
    最近更新 更多