在nodejs中使用elasticsearch获取基于属性值的文档

我正在使用Elasticsearch,我是这个技术的新手。我不知道如何使用nodej来search弹性search中的索引types的属性值。我的数据是

{ "line_num": 1, "action1": "ORIGINAL", "process_code1": "PENDING", "isPR": "Y", "req_header_reference_num": "PC5298", "req_line_reference_num": "PC5298", "pr_line_no": "1", "pr_id": "ffd3f7cc6", "pr_po_flag": "N", "pr_item_id": "720541" } 

从这个数据我想基于属性值进行search。 示例如果我给“ORIGINAL” ,在此基础上从elasticsearch中获取特定文件那么如何解决这个问题呢先谢谢

如果您的目标是匹配包含“ORIGINAL”值的任何字段,则必须使用“多重匹配”查询 。

在你的例子中,这意味着:

 POST /index/type/_search { "query": { "multi_match": { "query": "ORIGINAL", "fields": [ "*" ], "lenient": true } } } 

但请注意,这种查询方式效率不高,最好将单个字段与“匹配”查询匹配:

 POST /index/type/_search { "query": { "match": { "action1" : "ORIGINAL" } } } 

在node.js中,您可以使用官方的弹性库来更轻松地查询elasticsearch。

例如,在你的情况下,你会用这个库编写这样的代码:

 var elasticsearch = require('elasticsearch'); var client = new elasticsearch.Client({ host: 'localhost:9200', log: 'trace' }); client.search({ index: 'index', type: 'type', body: { query: { match: { action1: 'ORIGINAL' } } } }).then(function (resp) { var hits = resp.hits.hits; console.log(hits); }, function (err) { console.trace(err.message); });