31

如何在基于 URI 的查询中指定 AND 操作?我正在寻找类似的东西:

http://localhost:9200/_search?q="profiletype:student AND username:s*"
4

4 回答 4

26

根据文档,它应该像您描述的那样工作。请参阅http://www.elasticsearch.org/guide/reference/query-dsl/query-string-query.html

也就是说,您还可以使用以下内容:

http://localhost:9200/_search?q="+profiletype:student +username:s*"
于 2012-12-05T06:00:41.523 回答
26

对于ElasticSearch 中的URI 搜索,您可以使用 AND 运算符profiletype:student AND username:s,如您所说,但不带引号:

  _search?q=profiletype:student AND username:s*

您还可以将默认运算符设置为AND

  _search?q=profiletype:student username:s*&default_operator=AND

或者,您可以将+ 运算符用于必须存在的术语,即 +profiletype:student +username:s用作查询字符串。但是,如果没有 URL 编码,这将不起作用。在 URL 编码+is%2B和 space is 中%20,因此替代方案是

  _search?q=%2Bprofiletype:student%20%2Busername:s*
于 2014-01-10T10:12:43.473 回答
4

你可以试试下面的线。

http://localhost:9200/_search?q=profiletype:student%20AND%20username:s*

http://localhost:9200/_search?q=profiletype:student AND username:s*
于 2017-06-13T20:00:01.553 回答
3

我必须结合使用默认运算符和 + 符号才能使其工作

curl -XGET 'localhost:9200/apm/inventory/_search?default_operator=AND&q=tenant_id:t2+_all:node_1'
于 2016-12-27T15:12:51.213 回答