kno*_*cte 12 json elasticsearch
关于弹性搜索的非常基本的问题,文档没有非常清楚地回答(因为它们似乎涉及许多高级细节但却错过了基本细节!).
示例:范围查询
http://www.elasticsearch.org/guide/reference/query-dsl/range-query.html
不告诉如何通过搜索端点来执行范围?
如果是,那么如何通过查询字符串来做到这一点?我的意思是,我想做一个GET,而不是一个POST(因为它是一个查询,而不是一个插入/修改).但是,GET请求的文档并未告诉如何在Range示例中使用JSON:
http://www.elasticsearch.org/guide/reference/api/search/uri-request.html
我错过了什么?
谢谢
kar*_*rmi 14
使用Lucene查询语法:
curl -X GET 'http://localhost:9200/my_index/_search?q=my_field:[0+TO+25]&pretty'
Run Code Online (Sandbox Code Playgroud)
我们假设我们有一个索引
curl -XPUT localhost:9200/test
还有一些文件
curl -XPUT localhost:9200/test/range/1 -d '{"age": 9}'
curl -XPUT localhost:9200/test/range/2 -d '{"age": 12}'
curl -XPUT localhost:9200/test/range/3 -d '{"age": 16}'
Run Code Online (Sandbox Code Playgroud)
现在我们可以通过查询一定范围内的这些文档
curl -XGET 'http://localhost:9200/test/range/_search?pretty=true' -d '
{
"query" : {
"range" : {
"age" : {
"from" : "10",
"to" : "20",
"include_lower" : true,
"include_upper": true
}
}
}
}
'
Run Code Online (Sandbox Code Playgroud)
这将返回文档2和3.
不过,我不确定是否有办法通过URI请求执行这些复杂的查询.
编辑:感谢karmi这里是没有JSON请求的解决方案:
curl -XGET --globoff 'localhost:9200/test/range/_search?q=age:["10"+TO+"20"]&pretty=true'
感谢@javanna 回复我自己:
在搜索文档的 RequestBody 部分中:
http://www.elasticsearch.org/guide/reference/api/search/request-body.html
最后,它说:
搜索请求的其余部分应在正文本身内传递。正文内容也可以作为名为source的 REST 参数传递。
所以我想我需要使用带有source属性的搜索端点来传递json。
| 归档时间: |
|
| 查看次数: |
15930 次 |
| 最近记录: |