Pet*_*ter 20 url post get elasticsearch
我正在通过Elastic Search Head插件试验弹性搜索.
当我通过POST提交查询时,结果如预期.
但是,当我使用GET尝试相同的查询时,我总是返回索引中的所有值.
那么:如何通过GET将查询传递给弹性搜索服务器,这样我就可以在URL中使用搜索字符串了?
jav*_*nna 29
如果你发送一个GET主体可能甚至没有被发送到elasticsearch,所以你基本上没有向_search端点发送任何查询,这就是你得到所有东西的原因(当然只有基于默认大小参数的前10个结果).
查看URI请求,它允许您使用qURI中的参数发送基本查询.您可以使用Lucene查询语法并指定链接页面中列出的其他一些参数.如果您想要执行更高级的查询,您可能希望将它们表达为JSON查询,以便获得elasticsearch Query DSL的所有好处,但您需要将它们作为请求的主体提供.
更新
深入研究elasticsearch head插件,当您选择GET方法但在URL本身内并且未指定参数名称时,查询不会作为请求主体发送,如下所示:
http://localhost:9200/_search&{"query":{"term":{"text":"john"}}}
Run Code Online (Sandbox Code Playgroud)
这可能是插件本身的一个错误,而elasticsearch无法找到查询,这就是为什么你得到所有结果的原因.这意味着只有POST方法在使用elasticsearch head发送查询时才有效.
Elasticsearch允许使用GET和POST来执行查询.如果您使用GET,您可以将查询作为正文发送或使用source参数,如下所示:
http://localhost:9200/_search?source={"query":{"term":{"text":"john"}}}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9804 次 |
| 最近记录: |