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

Elastic Search GET没有提供最新文档

周高畅
2023-03-14
问题内容

我正在使用Elastic 5.1.2版本。我正在使用Elastic java Restclient从Elastic搜索中发布和查询文档。

POST操作后立即使用GET操作时,我没有得到准确的文档计数。如果我在POST和GET之间睡眠> 1秒,则GET操作能够给出准确的计数。

我的操作流程是:1)使用POST操作过帐新事务(文档)。2)使用GET操作检索文档总数。这是在POST之后。

我认为,Elastic需要时间来更新索引。这是Elasticsearch还是我的任何设置有问题吗?请帮忙


问题答案:

这是正常现象!当您为新数据建立索引时,它不会立即可用,但会在下一次刷新后进行,默认情况下每秒刷新一次。

如果那困扰您,您有几种选择:

  1. 您可以在发布文档后调用/_refresh端点,这将立即刷新索引,并且下一个GET调用将起作用
  2. 您可以在对文档建立索引时在POST调用中添加?refresh=true参数,基本上与1相同
  3. 您可以在为文档建立索引时在POST调用中添加?refresh=wait_for参数,并且仅在进行刷新操作后调用才会返回,以便下一个GET调用将返回文档
  4. 您可以减少index.refresh_interval设置中的值(默认为1秒),以便刷新操作更频繁地进行。

只是知道,从性能的角度来看,实现所需目标的最不积极的方法是3,即ES
5中引入的新参数,该参数不会强制刷新索引,只有在新索引文档可用时才会返回搜索。过于频繁地刷新(1、2和3)可能会降低性能。



 类似资料:
  • 问题内容: 我只是熟悉Apache JackRabbit。我已经完成了一些用于文档管理的多用户存储库。 如果有人同时使用它们,您能回答这些问题吗? ModeShape是否以某种方式链接到JBoss?我对JBoss AS或任何其他JBoss工具没有太多经验。我看到了对tomcat的支持,但是有很多JBossy的东西 文档说将来的发行版应该具有UI集成,这还有很长的路要走吗?它将是什么样的UI集成?是

  • 从angular 4.4升级到5.0,并将所有HttpModule和Http更新到HttpClientModule后,我开始出现此错误。 我还再次添加了HttpModule,以确保这不是由于某些依赖关系造成的,但它并不能解决问题 应用程序内。模块,我已正确设置 我不知道这个错误是从哪里来的,或者我不知道如何去了解它。我也有一个警告(也放在下面),可能是相关的。 警告信息:

  • 我无法在swagger ui中显示我的spring文档。这是我的配置: 我输入这个URL来访问接口:http://localhost:8080/swagger-ui.html 问题是它没有显示从以下位置加载的api-docs: "http://localhost:8080/v3/api-文档/招摇配置“ 状态:200。 但是如果我在url字段中输入这个,它会工作。。我的目标不是每次都进入这个。。

  • 我正在使用Yeoman+Angular Generator为我的应用程序,我一直在努力地跑来跑去与Jasmine相处!这就是我被困住的地方。我希望能够在Jasmine测试中使用jQuery选择器。我已经安装了和包。然后我为bower安装了它(我是新来的,我不知道应该为什么安装什么!)。我已经在中手动添加了路径,但仍然得到这样的消息: 这就是我的因果报应配置的样子:

  • 我将Application类增强为Configuration类,并将其标记为@Component,以便提供的值可以在使用代码中自动安装: 我尝试了自动连接上述数据源: 在我的pom中。xml我使用了spring boot starter数据jpa。 但它不起作用: 为什么?

  • 我有一个问题加载类到Angular组件。很长一段时间以来,我一直试图解决这个问题;我甚至尝试将它加入到一个文件中。我拥有的是: 一个pplication.ts 服务/名称服务。ts 我一直收到一条错误消息,说。 有人能帮我发现代码的问题吗?