查询对象。 “q”查询不起作用

时间:2014-05-20 00:28:00

标签: javascript node.js elasticsearch

使用Javascript API,我执行此操作:

client.search({
    index:'530d8aa855df0c2d269a5a58',
    type:'532a2b28495c533e5eaeb020',
    q:'slide'
},function (error,response){
    if(error){
        console.log(error);
    }
    if(response){
        console.log(response);
    }
});

我想搜索任何包含单词' slide'。

的文档

查询不返回任何匹配。

但是,如果我输入:

http://server:9200/530d8aa855df0c2d269a5a58/532a2b28495c533e5eaeb020/_search?pretty=true

在浏览器中,我得到了点击。

我做错了什么?

更多信息:


javascript查询返回:

Elasticsearch DEBUG: 2014-05-20T00:19:04Z
  starting request { method: 'POST',
    path: '/530d8aa855df0c2d269a5a58/532a2b28495c533e5eaeb020/_search',
    query: { q: 'slide' } }


Elasticsearch TRACE: 2014-05-20T00:19:04Z
  -> POST http:/server:9200/530d8aa855df0c2d269a5a58/532a2b28495c533e5eae
b020/_search?q=slide

  <- 200
  {
    "took": 3,
    "timed_out": false,
    "_shards": {
      "total": 5,
      "successful": 5,
      "failed": 0
    },
    "hits": {
      "total": 0,
      "max_score": null,
      "hits": []
    }
  }

Elasticsearch INFO: 2014-05-20T00:19:04Z
  Request complete

{ took: 3,
  timed_out: false,
  _shards: { total: 5, successful: 5, failed: 0 },
  hits: { total: 0, max_score: null, hits: [] } }

我正在将我的信息编入索引:

client.index({
    index:data2.name,
    type:data2.files[i].author,
        id:data2.files[i]._id.toString(),
    body:data2.files[i]
},function(err,resp){
    if(err){console.log(err)};
        if(resp){console.log(resp)};
});

编辑:

我的node.js应用程序的全部内容如下:

var elasticsearch = require('elasticsearch');
var client = new elasticsearch.Client({
    host: 'server:9200',
    log:'trace'
});

client.search({
    q:'slide'   
},function (error,response){
    if(error){
        console.log(error);
    }
    if(response){
        console.log(response);
    }
});

除了server被替换为真实的IP地址。

我的节点应用程序在本地运行,并且它连接到已打开端口80,443,9200和9300的EC2实例。

EDIT2:

我将我的应用更改为:

client.search({

},function (error,response){
    if(error){
        console.log(error);
    }
    if(response){
        console.log(response);
    }
});

我得到了一切。但是,如何指定查询,然后让它工作?

EDIT3:

我使用的node.js elasticsearch模块是v2.1.6 我正在查看的API是针对v1.1

的内容

1 个答案:

答案 0 :(得分:0)

我可以通过替换

来运行查询

q:'slide'

使用

query:'slide'

因此,我所拥有的弹性搜索版本与the documentation不匹配,或文档错误。