在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); });
- Elasticsearch NodeJSsearch:如何从响应中检索结果
- 使用ElasticSearch javascript客户端创build索引,promise不会返回
- 如何在不使用Base64的情况下在ElasticSearch中索引二进制文件
- 从节点请求Elasticsearch超时
- 如何改变Elasticsearch 1.4中嵌套对象的types
- 全文search的想法MongoDB&node.js
- elasticdump:dump以错误结束(get phase)=>错误:连接ECONNREFUSED MY_IP:PORT
- 如何通过弹性search在expressjs中解决Not Found消息
- 对elasticsearch的GET请求中的'request_cache = true'不会创buildcaching