Elasticsearch存储和立即搜索延迟

尼莱什

我正在将与python一起使用。dsl在python中使用驱动程序。

我的脚本如下。

import time
from elasticsearch_dsl import DocType, String
from elasticsearch import exceptions as es_exceptions
from elasticsearch_dsl.connections import connections

ELASTICSEARCH_INDEX = 'test'

class StudentDoc(DocType):
    student_id = String(required=True)
    tags = String(null_value=[])

    class Meta:
        index = ELASTICSEARCH_INDEX

    def save(self, **kwargs):
        '''
        Override to set metadata id
        '''
        self.meta.id = self.student_id
        return super(StudentDoc, self).save(**kwargs)

# Define a default Elasticsearch client
connections.create_connection(hosts=['localhost:9200'])

# create the mappings in elasticsearch
StudentDoc.init()

student_doc_obj = \
    StudentDoc(
        student_id=str(1),
        tags=['test'])

try:
    student_doc_obj.save()
except es_exceptions.SerializationError as ex:
    # catch both exception raise by elasticsearch
    LOGGER.error('Error while creating elasticsearch data')
    LOGGER.exception(ex)
else:
    print "*"*80
    print "Student Created:", student_doc_obj
    print "*"*80


search_docs = \
    StudentDoc \
    .search().query('ids',
                    values=["1"])
try:
     student_docs = search_docs.execute()
except es_exceptions.NotFoundError as ex:
    LOGGER.error('Unable to get data from elasticsearch')
    LOGGER.exception(ex)
else:
    print "$"*80
    print student_docs
    print "$"*80

time.sleep(2)

search_docs = \
    StudentDoc \
    .search().query('ids',
                    values=["1"])
try:
     student_docs = search_docs.execute()
except es_exceptions.NotFoundError as ex:
    LOGGER.error('Unable to get data from elasticsearch')
    LOGGER.exception(ex)
else:
    print "$"*80
    print student_docs
    print "$"*80

在此脚本中,我正在创建,StudentDoc在创建时尝试访问相同的文档。记录下来empty时,我会得到回应search

输出

********************************************************************************
Student Created: {'student_id': '1', 'tags': ['test']}
********************************************************************************
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
<Response: []>
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
<Response: [{u'student_id': u'1', u'tags': [u'test']}]>
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

save命令执行并存储数据,然后为什么search不返回tat数据。经过2第二睡眠,它返回的数据。:(

尝试与curl命令相同,输出相同。

echo "Create Data"
curl http://localhost:9200/test/student_doc/2 -X PUT -d '{"student_id": "2", "tags": ["test"]}' -H 'Content-type: application/json'

echo
echo "Search ID"
curl http://localhost:9200/test/student_doc/_search -X POST -d '{"query": {"ids": {"values": ["2"]}}}' -H 'Content-type: application/json'
echo

在将数据存储到Elasticsearch方面有任何延迟吗?

是的,一旦您为新文档建立索引,该索引将在刷新索引后才可用。但是,您有几个选择,主要是。

答:您可以在保存之后并在搜索之前使用基础连接refresh建立test索引student_doc_obj

connections.get_connection.indices.refresh(index= ELASTICSEARCH_INDEX)

B.您可以get直接搜索文档而不是搜索文档,因为aget是完全实时的,不需要等待刷新:

student_docs = StudentDoc.get("1")

同样,使用curl,您只需在refresh查询中添加查询字符串参数

echo "Create Data"
curl 'http://localhost:9200/test/student_doc/2?refresh=true' -X PUT -d '{"student_id": "2", "tags": ["test"]}' -H 'Content-type: application/json'

或者您也可以通过id简单地获取文档

echo "GET ID"
curl -XGET http://localhost:9200/test/student_doc/2

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

一个任务的多个出口点(立即和延迟)

来自分类Dev

存储库模式和延迟加载+ AutoMapper

来自分类Dev

jQuery延迟立即拒绝

来自分类Dev

使用Tire和ElasticSearch搜索多个模型

来自分类Dev

Elasticsearch分片和副本搜索性能

来自分类Dev

Elasticsearch按索引类型和字段搜索

来自分类Dev

通过 elasticsearch 和 spring 联合搜索

来自分类Dev

Elasticsearch - 查询中“and”和“&”(&)的相同搜索结果

来自分类Dev

Elasticsearch - 按价格搜索和过滤

来自分类Dev

更改表单后立即执行某项操作并且延迟Angualr和RxJS的正确方法是什么?

来自分类Dev

如何使Visual Studio 2015立即突出显示括号,括号和引用,而不会出现延迟?

来自分类Dev

存储和访问最近搜索的xamarin表格

来自分类Dev

如何延迟执行foreach以执行搜索和替换功能。有延迟

来自分类Dev

ActiveMQ通过高延迟网络链接存储和转发

来自分类Dev

ActiveMQ通过高延迟网络链接存储和转发

来自分类Dev

休眠搜索:Elasticsearch和Lucene产生不同的搜索结果

来自分类Dev

在Elasticsearch中为搜索存储数据的推荐方式是什么

来自分类Dev

Elasticsearch按特定字段进行存储库搜索

来自分类Dev

ElasticSearch获取索引名称和存储大小

来自分类Dev

立即运行存储过程

来自分类Dev

引导程序模式立即关闭,应延迟

来自分类Dev

使延迟的::作业任务在开发中立即运行

来自分类Dev

使延迟的::作业任务在开发中立即运行

来自分类Dev

立即等待与延迟等待的返回类型

来自分类Dev

Elasticsearch索引搜索货币美元和英镑符号

来自分类Dev

ElasticSearch在文档和动态嵌套文档中搜索

来自分类Dev

Elasticsearch筛选聚合结果(用于搜索和聚合)

来自分类Dev

Elasticsearch在热节点和热节点上的搜索查询

来自分类Dev

Django elasticsearch DSL术语和短语搜索不起作用

Related 相关文章

  1. 1

    一个任务的多个出口点(立即和延迟)

  2. 2

    存储库模式和延迟加载+ AutoMapper

  3. 3

    jQuery延迟立即拒绝

  4. 4

    使用Tire和ElasticSearch搜索多个模型

  5. 5

    Elasticsearch分片和副本搜索性能

  6. 6

    Elasticsearch按索引类型和字段搜索

  7. 7

    通过 elasticsearch 和 spring 联合搜索

  8. 8

    Elasticsearch - 查询中“and”和“&”(&)的相同搜索结果

  9. 9

    Elasticsearch - 按价格搜索和过滤

  10. 10

    更改表单后立即执行某项操作并且延迟Angualr和RxJS的正确方法是什么?

  11. 11

    如何使Visual Studio 2015立即突出显示括号,括号和引用,而不会出现延迟?

  12. 12

    存储和访问最近搜索的xamarin表格

  13. 13

    如何延迟执行foreach以执行搜索和替换功能。有延迟

  14. 14

    ActiveMQ通过高延迟网络链接存储和转发

  15. 15

    ActiveMQ通过高延迟网络链接存储和转发

  16. 16

    休眠搜索:Elasticsearch和Lucene产生不同的搜索结果

  17. 17

    在Elasticsearch中为搜索存储数据的推荐方式是什么

  18. 18

    Elasticsearch按特定字段进行存储库搜索

  19. 19

    ElasticSearch获取索引名称和存储大小

  20. 20

    立即运行存储过程

  21. 21

    引导程序模式立即关闭,应延迟

  22. 22

    使延迟的::作业任务在开发中立即运行

  23. 23

    使延迟的::作业任务在开发中立即运行

  24. 24

    立即等待与延迟等待的返回类型

  25. 25

    Elasticsearch索引搜索货币美元和英镑符号

  26. 26

    ElasticSearch在文档和动态嵌套文档中搜索

  27. 27

    Elasticsearch筛选聚合结果(用于搜索和聚合)

  28. 28

    Elasticsearch在热节点和热节点上的搜索查询

  29. 29

    Django elasticsearch DSL术语和短语搜索不起作用

热门标签

归档