node.js - Elasticsearch中的搜索查询

标签 node.js elasticsearch full-text-search querydsl

我在elasticsearch中有如下文件

{"method":"POST","url":"/saas/services/1.0/account/*/purchase/*/subscription/cancel"}
{"method":"POST","url":"/saas/services/1.0/account/*/purchase/*/cancel"}

我正在使用node.js客户端搜索这些文档。以下是我正在发送的查询。

示例1类型:DSL
client.search({
    index: 'my_node',
    body: {
        query: {
            bool: {
                must: {
                    match: { method: 'POST' },
                    match: { url: '/saas/services/1.0/account/*/purchase/*/cancel' }
                }
            }
        }
    }
}

输出量
我收到订阅取消的其他记录。查询与确切的文档不匹配。我尝试了以下查询,它适用于这种情况,但不适用于其他几个测试用例。

文件
  {"method":"POST","url":"/paas/service/1.0/act/*/purchase"}}
    {"method":"GET","url":"/paas/service/1.0/act/*/purchase"}}
    {"method":"PUT","url":"/paas/service/1.0/act/*/purchase"}}

示例2类型:查询字符串
    client.search({
  index: 'my_node',
  q: 'method: POST AND url: /saas/services/1.0/account/*/purchase'
}

输出量

无论其他两个如何,我都可以获取GET购买文件。尝试过其他一些文档,方法参数未得到认可。

如何编写Elasticsearch查询来搜索文档以匹配method和url的属性。我曾尝试提高网址的查询时间,但似乎无法正常工作。

编辑-映射信息
 {
  "nodeclient": {
    "mappings": {
      "logs": {
        "properties": {
          "method": {
            "type": "string" },
          "url": {
            "type": "string" }
     } } }
  }
}

最佳答案

尝试添加引号

client.search({ index: 'my_node', body: { "query": { "bool": { "must": { "match": { "method": 'POST' }, "match": { "url": '/saas/services/1.0/account//purchase//cancel' } } } } } }

关于node.js - Elasticsearch中的搜索查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40685190/

相关文章:

javascript - 为什么这个 http 服务器要这样做?

scala - 我是否使用了正确的框架?

sql-server - SQL Server PDF 全文搜索不适用于 FileStream PDF 文件

ruby - 如何上传文本文档以及是否可以对其启用全文搜索?

java - ElasticSearch post_filter Java API问题

mysql - 在 MySql 上搜索相似词

node.js - 使用requirejs优化器时是否可以配置html文件中的内容?

node.js - 如何使 App Engine 标准上的 Node JS 日志像 Python 一样好

node.js - 在server端观察socketio client的ping

node.js - 如何在Elastic Search中编写条件