假设我们有一个已经存在的文档服务,开发语言Node.js,数据储存于Mongodb。现在我们要利用Elasticsearch,为文档增加全文检索功能。
1 为Logstash安装插件
./bin/logstash-plugin.bat install logstash-input-mongodb
./bin/logstash-plugin.bat install logstash-filter-prune
2 将Mongodb中数据导入Elasticsearch
创建logstash.conf文件如下:
input {
mongodb {
uri => 'mongodb://localhost:27017/teamup'
placeholder_db_dir => 'D:/MongoDB/db/'
placeholder_db_name =>'teamup.db'
collection => 'documents'
}
}
filter {
prune {
whitelist_names => [ "^_id$", "^markdown$", "^title$" ]
}
mutate {
rename => ["_id", "id"]
}
}
output {
stdout {
codec => json_lines
}
elasticsearch {
hosts => ["127.0.0.1:9200"]
index => "teamup"
manage_template=>true
document_type => "documents"
}
}
命令启动logstash:./bin/logstash.bat -f ./logstash.conf
,进行数据导入
3 查询
ret = await esclient.search({
index: 'documents',
body: {
query: {
match: {
text: '关键词'
}
}
}
});
网友评论