elasticsearch,Url,Post,Get,elasticsearch" /> elasticsearch,Url,Post,Get,elasticsearch" />

Url 在弹性搜索中使用GET/POST时的不同结果

Url 在弹性搜索中使用GET/POST时的不同结果,url,post,get,elasticsearch,Url,Post,Get,elasticsearch,我正在尝试通过弹性搜索头插件进行弹性搜索 当我通过POST提交查询时,结果与预期一致 但是,当我使用GET尝试相同的查询时,我总是返回索引中的所有值 那么:如何通过GET将查询传递到elastic search server,以便我可以在URL中使用搜索字符串?如果发送GET,则正文可能甚至没有发送到elasticsearch,因此基本上不向\u search端点发送查询,这就是为什么您要返回所有内容的原因(当然,只有基于默认大小参数的前10个结果) 查看,它允许您使用URI中的q参数发送基本查

我正在尝试通过弹性搜索头插件进行弹性搜索

当我通过POST提交查询时,结果与预期一致

但是,当我使用GET尝试相同的查询时,我总是返回索引中的所有值


那么:如何通过GET将查询传递到elastic search server,以便我可以在URL中使用搜索字符串?

如果发送GET,则正文可能甚至没有发送到elasticsearch,因此基本上不向
\u search
端点发送查询,这就是为什么您要返回所有内容的原因(当然,只有基于默认大小参数的前10个结果)

查看,它允许您使用URI中的
q
参数发送基本查询。您可以使用并指定链接页面中列出的其他一些参数。如果您希望执行更高级的查询,您可能希望将其表示为JSON查询,以获得elasticsearch的所有好处,但是您需要将它们作为请求的主体提供

更新
深入查看elasticsearch head插件,当您选择GET方法时,查询不会作为请求主体发送,而是在URL本身中发送,并且没有指定参数的名称,如下所示:

http://localhost:9200/_search&{"query":{"term":{"text":"john"}}}
http://localhost:9200/_search?source={"query":{"term":{"text":"john"}}}
这可能是插件本身的一个缺陷,而elasticsearch无法找到查询,这就是为什么您可以返回所有结果。这意味着只有POST方法在使用elasticsearch头发送查询时有效

Elasticsearch允许使用GET和POST执行查询。如果使用GET,则可以将查询作为正文发送,也可以使用如下源参数:

http://localhost:9200/_search&{"query":{"term":{"text":"john"}}}
http://localhost:9200/_search?source={"query":{"term":{"text":"john"}}}

httpheader声明我确实在发送查询,但不是用Lucene查询语法。奇怪的是,当它不工作时,您可以形成一个查询并显示GET选项……在文档中哪里可以找到“源”钥匙?我找不到也没用,downvoting@knocte这很棘手。你进入,然后点击顶部的链接,然后看页面底部。;)你是一个救命恩人。