如何在字段中查找具有特定字符串的所有文档?(Elasticsearch)

时间:2016-07-21 15:28:38

标签: elasticsearch

我有一个包含字段的文档:

"provider": "AppStore",
"device_model": "iPad3,6[graphicsDeviceName: PowerVR SGX 554]",
"days_in_game": 34,

我需要在iPad中使用device_model字符串获取所有文档!

有可能吗?

1 个答案:

答案 0 :(得分:3)

Elasticsearch中有两种类型的搜索查询,即。术语查询和匹配查询。匹配首先分析查询字符串,然后在查询中查找包含单词的文档,并根据匹配的程度返回结果。 术语查询的作用基本上是是或否查询,并且仅返回具有完全匹配的文档。 我认为对于您的情况,术语查询更适合。并且由于字段不包含确切的单词iPad,但是像iPad3这样的东西你应该使用前缀,通配符或可能的regexp查询,具体取决于你的文档实际包含的内容(看看this

您可以使用以下查询:

{
  "query": {
    "prefix": {
      "device_model": "iPad" 
    }
}