Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何正确地从Node.js进行elasticSearch、search查询?_Node.js_Api_Express_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch - Fatal编程技术网 elasticsearch,Node.js,Api,Express,elasticsearch" /> elasticsearch,Node.js,Api,Express,elasticsearch" />

如何正确地从Node.js进行elasticSearch、search查询?

如何正确地从Node.js进行elasticSearch、search查询?,node.js,api,express,elasticsearch,Node.js,Api,Express,elasticsearch,我陷入了一个问题,想不出解决办法。 我想从我的节点使用elasticSearch查询。 问题是,我可以通过postman实现,但不能通过node实现 http://user:psd@my_domain:9200/ra_autocomplete/search 从我的nodejs应用程序: var elasticsearch = require('elasticsearch'); var client = new elasticsearch.Client({ host: 'my_domain'

我陷入了一个问题,想不出解决办法。 我想从我的节点使用elasticSearch查询。 问题是,我可以通过postman实现,但不能通过node实现

http://user:psd@my_domain:9200/ra_autocomplete/search
从我的nodejs应用程序:

var elasticsearch = require('elasticsearch');
var client = new elasticsearch.Client({
  host: 'my_domain',
  port : 9200,
  protocol : 'http',
  auth : 'user:psd',
  maxRetries : 2
});
然后呢,

    client.search({
       index: "ra_autocomplete",
       body: {
         query: {
           m_prefix : {
           r_n : {
            query : my_var
          }
        }
      }
    }
  } , function(err, res) {
      console.log(err);
      console.log(res);
  });
我得到这个错误:

错误:找不到 在respond my\u path\node\u modules\elasticsearch\src\lib\transport.js:307:15 在检查失败时 my_path\node\u modules\elasticsearch\src\lib\transport.js:266:7 在HttpConnector上。 我的路径\节点\模块\elasticsearch\src\lib\connectors\http.js:159:7 在IncomingMessage.bound 我的路径\节点\模块\lodash\dist\lodash.js:729:21 在emitNone事件中。js:111:20 在IncomingMessage.emit events.js:208:7 在endReadableNT _stream _readable.js:1056:12 在_combinedtickcallbackinternal/process/next_tick.js:138:11 在进程中。_tickCallback internal/process/next_tick.js:180:9 现状:404, displayName:“未找到”, 消息:“未找到”, 路径:'/roads\u autocomplete/\u search', 查询:{}, 正文:“{query:{m_前缀:{r_n:{query:montexte a analyzer}}}”, 状态代码:404, 响应:'\r\n404未找到\r\n\r\n404未找到\r\nnginx/1.10.3 Ubuntu\r\n\r\n\r\n', toString:[函数], toJSON:[函数]}

任何帮助都将不胜感激,问题是,当我试图与邮递员合作时,一切进展顺利


谢谢。

我认为问题在于您没有连接到弹性搜索节点

将端口和域添加到一行中,然后运行一个简单的查询

var elasticsearch=需要“elasticsearch”; var client=new elasticsearch.client{ 主机:“localhost:9200”, 日志:“跟踪” }; client.search{ 索引:"产品",, 类型:'产品', 正文:{ 查询:{ 布尔:{ } } } }.thenbody=>{ 返回体; },错误=>{ console.traceerror.message; };
事实上,就是这样:我必须让主机:'my_domain:9200'和httpAuth:'user:psd'工作。非常感谢。