当前位置: 首页 > 面试题库 >

Elasticsearch通过ID获取不起作用,但是文档存在

楮乐邦
2023-03-14
问题内容

我在Elasticsearch 1.2.0(最近从1.0.1升级)上看到了带有ID的怪异行为。

搜索检索我的文档,显示_id的正确值:

[终奌站]

curl 'myServer:9200/global/_search?q=someField:something

结果是

{
  "took": 79,
  "timed_out": false,
  "_shards": {
    "total": 12,
    "successful": 12,
    "failed": 0
  },
  "hits": {
    "total": 1,
    "max_score": 17.715034,
    "hits": [
      {
        "_index": "global",
        "_type": "user",
        "_id": "7a113e4f-44de-3b2b-a3f1-fb881da1b00a",
        ...
      }
    ]
  }
}

但是,直接在id上查找不是:
[terminal]

curl 'myServer:9200/global/user/7a113e4f-44de-3b2b-a3f1-fb881da1b00a'

结果是

{
  "_index": "global",
  "_type": "user",
  "_id": "7a113e4f-44de-3b2b-a3f1-fb881da1b00a",
  "found": false
}

看来这是在以前使用自定义脚本进行更新的文档上。

有任何想法吗?


问题答案:

我认为您应该升级到1.2.1。由于发行说明(http://www.elasticsearch.org/blog/elasticsearch-1-2-1-released/),存在一些问题,尤其是get:

`Elasticsearch 1.2.0中存在一个路由错误,该错误可能会对集群产生许多不良影响。可能的副作用包括:

升级到1.2.0之前被索引的文档可能无法通过get访问。搜索将找到这些文档,但不能通过ID直接获取该文档。



 类似资料:
  • WebDriver=newfirefoxdriver(); jse=(jse)驱动程序; 字符串ss=(字符串)jse。executeScript(“var x=document.getElementsByName('submit')[0]。值;返回x”); System.out.println("标题保存按钮:"ss); 我想使用相同的代码。。但是getElementById 我必须在哪里换车。

  • 正如MS Support最近告诉我的那样,使用“GET”在RU的使用中比sql查询更有效。我想知道我是否可以(在azure.cosmospython包中或对REST API的自定义HTTP请求中)通过其唯一的“id”字段(我为其生成了GUID)获取文档,而无需SQL查询。 显示的每个示例都使用文档的链接/路径,该链接/路径是使用文档的“_rid”元数据构建的,而不是在创建文档时设置的“id”字段。

  • 我正在尝试将日志发送到ElasticSearch,并在Kibana中查看它们。出于某种奇怪的原因,它不起作用:这些项目正在做一些事情,但在基巴纳什么都没有。我下载并尝试了10多个与此主题相关的项目,虽然它们被介绍为工作示例,但没有一个成功:Kibana中没有任何内容! 我在这里发布了其中一个的源代码: 这是控制器: PS我还发现了log4net的示例-也不工作

  • 问题内容: 我知道我可以按元素获取范围: 我该如何反向:使用scope来查找DOM元素,例如? 我想这样做是为了调试。我的作用域树显示了一些内容,我想确定它的来源。 问题答案: 尽管不是很性感,但每个dom节点都有一个ng-scope类,因此您可以通过技术进行如下操作:

  • 问题内容: 从最近6小时开始搜寻,但没有任何解决方法。请帮我。Elasticsearch ID为:2、4、7、8、11、15、15、16,.... 我的当前文档ID为11,然后如何获取下一个ID为15,上一个ID为8。 谢谢 问题答案: 您可以运行两个查询,一个查询下一个ID,一个查询前一个ID。 下一个ID的查询是: 而先前ID的查询为:

  • 在我们仔细处理之后。我仍然无法获取自动生成的文档ID。没有“then”选项。我的代码: 创建后如何获取ID?