您使用什么URL来执行索引查询?
我在这里看到以下内容,但是这样做的URL是什么? http://www.elasticsearch.org/guide/reference/query-dsl/indices-query.html
我知道如何在弹性搜索中查询的唯一方法是使用URI:
http://localhost:9200/myindex
我遇到的问题是我有多个索引和不同的文档 myindex1 myindex2 myindex3
我希望能够对myindex1和myindex2(或者只是myindex2和myindex3)执行任何查询
这可能吗?您还可以将索引查询与QueryDSL结合使用,例如match_all查询或术语查询:
http://www.elasticsearch.org/guide/reference/query-dsl/terms-query.html
请展示一个示例网址的示例,如果可能的话,会在请求正文中显示内容,以便我可以了解一下。
答案 0 :(得分:16)
你可以尝试:
curl http://localhost:9200/myindex1,myindex2/_search?q=*
或
curl -XPOST http://localhost:9200/myindex1,myindex2/_search -d '{
// your query here
}'
这是你在找什么?
答案 1 :(得分:7)
如果您使用的是感知插件,可以像这样写
POST myindex1/_search
{
"query": {"match_all": {}}
}
答案 2 :(得分:6)
你可以通过几种不同的方式做到这一点。
1)对myindex1
和myindex2
的索引查询以及title
字段上的字词查询。
curl -XPOST http://localhost:9200/_search -d '{
"query": {
"indices": {
"indices": [
"myindex1",
"myindex2"
],
"query": {
"terms": {
"title": [
"foo",
"bar"
]
}
}
}
}
}'
2)通过指定要在URI中搜索的索引(具有相同的确切术语查询)。
curl -XPOST http://localhost:9200/myindex1,myindex2/_search -d '{
"query": {
"terms": {
"title": [
"cookies",
"cake"
]
}
}
}'
是的,您可以在两个示例中的任何一个中替换match_all查询(或任何其他查询here)的术语查询。以下是在第二个示例中执行match_all查询的方法:
curl -XPOST http://localhost:9200/myindex1,myindex2/_search -d '{
"query": {
"match_all": {}
}
}'
答案 3 :(得分:1)
我建议安装弹头插件。该接口上的第3个选项卡具有查询构建器。您可以选择索引,构建查询,并查看它生成的dsl查询。这是快速了解dsl查询语法的一种方法。