相关疑难解决方法(0)

通过查询从Elasticsearch中删除记录

我试图从Elasticsearch删除特定的日期记录.我的查询如下:

curl -XDELETE 'http://localhost:9200/twitter/twit/_query' -d '
{
    "filter" : {
            "range" : {
                "date_time" : { "from" : "2012-10-01 00:00:01", "to" : "2013-05-01 11:59:59"}
            }
        }
}'
Run Code Online (Sandbox Code Playgroud)

但它没有删除任何记录.所以它是正确的或有一些其他方法来删除记录.

elasticsearch

13
推荐指数
2
解决办法
2万
查看次数

使用python客户端进行elasticsearch滚动

在elasticsearch中滚动时,重要的是在每个滚动中提供最新的内容scroll_id

初始搜索请求和每个后续滚动请求将返回一个新的scroll_id?—仅应使用最新的scroll_id。

以下示例(取自此处)使我感到困惑。首先,滚动初始化:

rs = es.search(index=['tweets-2014-04-12','tweets-2014-04-13'], 
               scroll='10s', 
               search_type='scan', 
               size=100, 
               preference='_primary_first',
               body={
                 "fields" : ["created_at", "entities.urls.expanded_url", "user.id_str"],
                   "query" : {
                     "wildcard" : { "entities.urls.expanded_url" : "*.ru" }
                   }
               }
   )
sid = rs['_scroll_id']
Run Code Online (Sandbox Code Playgroud)

然后循环:

tweets = [] while (1):
    try:
        rs = es.scroll(scroll_id=sid, scroll='10s')
        tweets += rs['hits']['hits']
    except:
        break
Run Code Online (Sandbox Code Playgroud)

它可以工作,但是我看不到sid更新的地方。我相信它是在python客户端内部发生的。但我不明白它是如何工作的...

python elasticsearch pyelasticsearch

3
推荐指数
3
解决办法
1万
查看次数

标签 统计

elasticsearch ×2

pyelasticsearch ×1

python ×1