弹性搜索&嵌套查询

时间:2017-01-26 13:33:48

标签: elasticsearch nest

如何查询包含特定字符串的所有记录?

例如:

如果那些在db

{
"ip": "185.239.131.76",
"domain": "http://express.com",
"event_type": "page_view"
},
{
"ip": "185.239.131.76",
"domain": "http://express.com",
"event_type": "page_view"
},
{
"ip": "37.39.244.71",
"domain": "http://express.com",
"event_type": "view"
},

我希望获取包含字符串" page"的所有记录。

所以我只得到上面3条记录中的前2条?

还可以显示http查询和嵌套查询吗?

感谢

2 个答案:

答案 0 :(得分:0)

您可以尝试发帖查询:

http://localhost:9200/YourIndex/_search?=pretty=true

查询:

{
    "query": {
        "match": {
            "event_type": "page_view"
        }
    }

答案 1 :(得分:0)

如果我正确理解了您的问题,则您的字段event_type的值为page_viewview,可能为page_action,但值为单字符串。

我在page中查询event_type的方法是将event_type映射为not_analyzed,如下mapping

"event_type": {
  "index": "not_analyzed",
  "type": "string"
},

然后查询以page开头的字符串,如

GET yourIndex/_search
{ "query": {
    "prefix": {
      "event_type": {
          "value": "page"
      }
    }
}