ElascticSearch子字段搜索似乎在第一次出现时停止

时间:2015-05-28 15:39:08

标签: elasticsearch

在以下文档中,我想查询所有' name'包含' bill'。

的字段
use std::ffi::CString;
use std::mem;

#[no_mangle]
pub extern fn query() -> *const i8 {
    let s = CString::new("Hello!").unwrap();
    let ptr = s.as_ptr();
    mem::forget(s);
    return ptr;
}

以下查询正确返回文档:

PUT /my_index/blogpost/2
{
  "vendor":     {
    "name":     "bill" 
  },
  "user":     {
    "name":     "bob"
  }
}

但是要搜索“bob'而不是退回文件。

我哪里错了?

1 个答案:

答案 0 :(得分:1)

您需要指定要搜索的字段的完整路径:

POST /my_index/blogpost/_search
{
   "query": {
      "bool": {
         "must": [
            {
               "match": {
                  "user.name": "bob"
               }
            }
         ]
      }
   }
}

以下是我用于测试的一些代码:

http://sense.qbox.io/gist/74b124fd90aa3c7d422b3ef13933ce419b44714e