我正在尝试学习如何查询ElasticSearch。我的背景是数据库开发,我一直在思考sql的做法。我确实阅读了有关不同类型查询的ES文档,但其中许多仍然对我没有意义。我有几个问题,真的希望有人可以帮助我解决问题。
为什么这样的事情不起作用?
{
"fields":["app","cat","sub"],
"query":{
"field" : {
"app.raw": "AAA"
}
},
"from": 0,
"size": 10
}
由于
答案 0 :(得分:0)
- _search和_search?search_type = count?
之间有区别吗? 醇>
是的,后者将不返回实际点击数。如果您只需要知道它将匹配多少文档,或者您只需要过滤器/聚合的结果,那么后者适合您。
- 有没有办法可以查询映射,所以我可以看到字段名称和类型?
醇>
使用get mapping端点:http://localhost:9200/index/type/_mapping?pretty
语法有各种变化,我使用CBPeripheral
但您也可以将其称为type/_mapping
- 我需要从app =" AAA"。
的所有文件中带回app,cat和sub字段。 醇>
在不知道您的映射的情况下,很难猜测真正出错的地方。
由于您正在使用_mapping/type
,我认为您可能会使用Core Types,这是一个app.raw
字段,因此您可能应该使用最适合它的查询这将是Term Query:
not_analyzed
如果上述方法无法解决,请提供{
"query":{
"term" : {
"app.raw": "AAA"
}
}
}
的输出。
掌握查询DSL对于使任何有用的东西很重要。我建议阅读Query DSL reference,浏览"Search in Deptht"-Guide,我也可以推荐最新的视频Query DSL not just for Wizards,让一些奇怪的部分神秘化。