如果我使用网址发出请求:
http://myserver/stuff/stuff/_search?q=TEST
那么在没有查询字符串的情况下,我将POST到该端点的等效文档是什么?
我试过了:
{
query: {
term: { "_all": "TEST" }
}
}
但是我们的索引如何设置,这不会返回任何内容(但?q=TEST
确实如此)。 The most basic search example in the API指定要搜索的字段,我不想这样做。我希望搜索为开放式和不受限制的,就像我使用了查询字符串一样。
答案 0 :(得分:2)
正如official documentation中所述,URI搜索查询字符串查询(即q=...
)相当于在正文中发送query_string
查询。
所以这个
curl -XGET http://myserver/stuff/stuff/_search?q=TEST
等同于此
curl -XPOST http://myserver/stuff/stuff/_search -d '{
"query": {
"query_string": {
"query": "TEST"
}
}
}'
两个查询都默认搜索_all
字段,这就是您想要的。
答案 1 :(得分:0)
q是查询字符串(映射到query_string查询,请参阅查询 字符串查询以获取更多详细信息。
来自文档。
https://www.elastic.co/guide/en/elasticsearch/reference/2.x/search-uri-request.html
这是相应的查询DSL:
{
query: {
"query_string": { "_all": "TEST" }
}
}
也相关:
如果未指定前缀字段,则查询字词的默认字段。 默认为index.query.default_field索引设置,其中包含 将默认值设为_all。