gpt4 book ai didi

node.js - Elasticsearch 未定义?

转载 作者:行者123 更新时间:2023-12-03 02:02:30 25 4
gpt4 key购买 nike

我在Linux服务器上使用了mongo-connectorpip install mongo-connectorpython mongo_connector.py -m localhost:27217 -t http://localhost:9200
在我本地的node.js服务器内部,我使用的是mongoDB,该服务器托管在我的linux服务器

var Movie = require('../models/Movie');
var mongoosastic = require("mongoosastic");
var elasticsearch = require('elasticsearch');

movie = new Movie({title: 'Warrior'});

movie.save(function() {
console.log(arguments)
Movie.search({query:"Warrior"}, function(err, results) {
console.log(results);
});
});

架构
var mongoose = require('mongoose');
var elasticsearch = require('elasticsearch');
var mongoosastic = require("mongoosastic");

var movieSchema = new mongoose.Schema({

language: String,
year: String,
title: { type:String, es_indexed:true },
director: String

});


movieSchema.plugin(mongoosastic);

module.exports = mongoose.model('Movie', movieSchema);

我一直不确定。我认为数据已建立索引,但无法搜索。

测试
curl -XPUT 'http://localhost:9200/blog/user/dilbert' -d '{ "name" : "Dilbert Brown" }'

curl -XGET 'http://localhost:9200/blog/user/dilbert?pretty=true'

{
"_index" : "blog",
"_type" : "user",
"_id" : "dilbert",
"_version" : 1,
"found" : true,
"_source":{ "name" : "Dilbert Brown" }
}

问题可能是node.js托管在我的本地计算机上,而mongoDB / elasticsearch位于我的linux服务器上。

最佳答案

通过指出您的node.js和ES在两个不同的主机上这一事实,您可能已经把矛头指向了这个问题。

看,在您的命令行:

python mongo_connector.py -m localhost:27217 -t http://localhost:9200
  • -m指向本地主机端口27217上的Mongo DB(除非该端口是通向远程Linux服务器的SSH隧道的入口)
  • -t指向您的复制端点(即本地计算机的端口9200上的Elasticsearch)

  • 根据您的声明,即Elasticsearch和MongoDB托管在您的远程Linux服务器上,您应该将 localhost替换为Linux服务器的主机名或IP地址,并确保在该主机上打开了端口27217和9200。

    然后,您还应确保Node.js和mongoosastic指向您的linux服务器,因为默认情况下,它使用 localhost:9200,即本地计算机。因此,请改用它并指向您的linux服务器:
    movieSchema.plugin(mongoosastic, {
    hosts: [
    'your_linux_host:9200'
    ]
    });

    而且您的 Mongoose 连接也指向您的linux服务器。
    mongoose.connect('mongodb://your_linux_host/your_database');

    关于node.js - Elasticsearch 未定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30700844/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com