首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >弹性搜索:搜索结果的pyes.exceptions.IndexMissingException异常

弹性搜索:搜索结果的pyes.exceptions.IndexMissingException异常
EN

Stack Overflow用户
提问于 2012-08-29 11:06:37
回答 1查看 1.4K关注 0票数 2

这是一个关于弹性搜索python (pyes)的问题。

我通过curl运行了一个非常简单的测试案例,所有事情似乎都像预期的那样正常工作。

以下是卷曲测试用例的描述:

专家系统中存在的唯一文件是:

代码语言:javascript
复制
curl 'http://localhost:9200/test/index1' -d '{"page_text":"This is the text that was found on the page!"}

然后,我在ES中搜索单词"found“中存在的所有文档。结果似乎没问题:

代码语言:javascript
复制
curl 'http://localhost:9200/test/index1/_search?q=page_text:found&pretty=true'
{
  "took" : 1,
  "timed_out" : false,
  "_shards" : {
    "total" : 5,
    "successful" : 5,
    "failed" : 0
  },
  "hits" : {
    "total" : 1,
    "max_score" : 0.15342641,
    "hits" : [ {
      "_index" : "test",
      "_type" : "index1",
      "_id" : "uaxRHpQZSpuicawk69Ouwg",
      "_score" : 0.15342641, "_source" : {"page_text":"This is the text that was found on the page!"}

    } ]
  }
}

然而,当我通过python2.7API (pyes)运行相同的查询时,出现了一些问题:

代码语言:javascript
复制
>>> import pyes
>>> conn = pyes.ES('localhost:9200')
>>> result = conn.search({"page_text":"found"}, index="index1")
>>> print result
<pyes.es.ResultSet object at 0xd43e50>
>>> result.count()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/pythonbrew/pythons/Python-2.7.3/lib/python2.7/site-packages/pyes/es.py", line 1717, in count
    return self.total
  File "/usr/local/pythonbrew/pythons/Python-2.7.3/lib/python2.7/site-packages/pyes/es.py", line 1686, in total
    self._do_search()
  File "/usr/local/pythonbrew/pythons/Python-2.7.3/lib/python2.7/site-packages/pyes/es.py", line 1646, in _do_search
    doc_types=self.doc_types, **self.query_params)
  File "/usr/local/pythonbrew/pythons/Python-2.7.3/lib/python2.7/site-packages/pyes/es.py", line 1381, in search_raw
    return self._query_call("_search", body, indices, doc_types, **query_params)
  File "/usr/local/pythonbrew/pythons/Python-2.7.3/lib/python2.7/site-packages/pyes/es.py", line 622, in _query_call
    return self._send_request('GET', path, body, params=querystring_args)
  File "/usr/local/pythonbrew/pythons/Python-2.7.3/lib/python2.7/site-packages/pyes/es.py", line 603, in _send_request
    raise_if_error(response.status, decoded)
  File "/usr/local/pythonbrew/pythons/Python-2.7.3/lib/python2.7/site-packages/pyes/convert_errors.py", line 83, in raise_if_error
    raise excClass(msg, status, result, request)
pyes.exceptions.IndexMissingException: [_all] missing

正如您所看到的,pyes返回结果对象,但由于某种原因,我甚至无法得到结果的数量。

有人猜到这里可能出了什么问题吗?

提前谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-04 09:12:49

参数的名称更改了,它不再称为index,它称为indices,它是一个列表:

代码语言:javascript
复制
>>> result = conn.search({"page_text":"found"}, indices=["index1"])
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12176524

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档