0

在弹性搜索新,我试图做更新操作与elasticsearch,但为此,当我试图筛选和选择特定的代码,我得到的执行和例外情况是:Elasticsearch在做更新操作时,选择特定的索引获取异常

类型的异常 'ElasticsearchCRUD.ElasticsearchCrudException' 发生ElasticsearchCRUD.dll但在用户代码中没有处理, 其他信息:ElasticSearchContextGet:HttpStatusCode.BadRequestNo处理程序找到的URI [// skillwithlistofdetailss/skillwithlistofdetails/1]和方法[GET]

和我的方法是如下:

public void UpdateSkill(long updateId, string updateName, string updateDescription, List<SkillDetail> updateSkillDetailsList) 
    { 
     using (var context = new ElasticsearchContext(ConnectionString, _elasticSearchMappingResolver)) 
     { 
      //var addressItem = _elasticsearchContext.SearchById<SkillWithListOfDetails>(updateId); 
      //var entityAddress = _entityFrameworkContext.Address.First(t => t.Id == addressItem.Id); 
      try 
      { 
       var skill = context.GetDocument<SkillWithListOfDetails>(updateId); 

       skill.Updated = DateTime.UtcNow; 
       skill.Name = updateName; 
       skill.Description = updateDescription; 
       skill.SkillDetails = updateSkillDetailsList; 

       foreach (var item in skill.SkillDetails) 
       { 
        item.Updated = DateTime.UtcNow; 
       } 

       context.AddUpdateDocument(skill, skill.Id); 
       context.SaveChanges(); 
      } 
      catch(Exception e) 
      { 
       throw e; 
      } 

     } 
    } 

,我在这行代码得到异常: -

变种技能= context.GetDocument(updateId);

+0

错误的这部分是对我有意思: [// skillwithlistofdetailss/skillwithlistofdetails/1] 你指定你随时随地指数以某种方式在这段代码之前(默认索引)?此外,URI具有技能列表的事实有两个“s”。那是故意的吗? – Miek

+0

是的,我做到了这一点....通过这段代码,我可以得到索引值的意义GET http:// localhost:9200/skillwithlistofdetailss/skillwithlistofdetails/_search – karan

+0

您是否可以编辑问题以提供索引结构为我们? – Miek

回答

0

索引/类型名称似乎有问题吗?该错误消息说:“为uri [// skillwithlistofdetailss/skillwithlistofdetails/1]和方法[GET]找到ElasticSearchContextGet:HttpStatusCode.BadRequestNo处理程序:”。

检查您的索引和类型是否正确。

指数:skillwithlistofdetailss

类型:skillwithlistofdetails

相关问题