小编Dan*_*kle的帖子

Elasticsearch:路径下的嵌套对象不是嵌套类型

我一直在尝试搜索包含嵌套字段的文档.我创建了这样的嵌套映射:

{
  "message": {
    "properties": {
      "messages": {
        "type": "nested",
        "properties": {
          "message_id": { "type": "string" },
          "message_text": { "type": "string" },
          "message_nick": { "type": "string" }
        }
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我的搜索看起来像这样:

curl -XGET 'localhost:9200/thread_and_messages/thread/_search' \
     -d '{"query": {"bool": {"must": [{"match": {"thread_name": "Banana"}}, {"nested": {"path": "messages", "query": {"bool": {"must": [{"match": {"messages.message_text": "Banana"}}]}}}]}}}}'
Run Code Online (Sandbox Code Playgroud)

然而,我收到此错误消息:

QueryParsingException[[thread_and_messages] [nested] nested object under path [messages] is not of nested type]
Run Code Online (Sandbox Code Playgroud)

编辑

我仍然收到此错误.我通过Java这样做,所以这是我想要创建的文档:

{
  "_id": {
    "path": "3",
    "thread_id": "3",
    "thread_name": "Banana",
    "created": "Wed Mar …
Run Code Online (Sandbox Code Playgroud)

nested elasticsearch

25
推荐指数
1
解决办法
2万
查看次数

Java elasticsearch客户端始终为null

我最近从elasticsearch 1.7切换到2.0,我注意到你设置客户端的方式已经改变了.我浏览了文档,由于某种原因客户端始终为null.我想知道我是否正确设置了它.

这是我的代码:

    Client client = null;

    try {
        client = TransportClient.builder().build().addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("localhost"), 9300));
    } catch (Exception e) {
        Logger.log(e);
    } finally {
        client.close();
        try {
            conn.close();
        } catch (SQLException e) {
            Logger.log(e);
        }
    }
Run Code Online (Sandbox Code Playgroud)

java elasticsearch

8
推荐指数
1
解决办法
6591
查看次数

Elasticsearch:path [messages]下的嵌套对象不是嵌套类型

我在Elasticsearch中遇到嵌套类型映射的很多问题,我已经运行它来创建我的索引:

curl -XPOST 'http://localhost:9200/thread_and_messages' -d 
'{"mappings" : {
    "message": {
        "properties": {
            "messages": {
                "type": "nested", 
                "include_in_parent": true, 
                "properties": {
                    "message_id": {"type": "string"}, 
                    "message_text": {"type": "string"}, 
                    "message_nick": {"type": "string"}
                }
            }
        }
    }
}}'
Run Code Online (Sandbox Code Playgroud)

那么这就是我为文档编制索引的方式:

curl -XPUT 'http://localhost:9200/thread_and_messages/thread/1' -d 
'{
    "thread_id":"2", 
    "thread_name":"Windows", 
    "created":"Wed Mar 25 2015", 
    "first_nick":"Admin", 
    "messages":[
        {"message_id":"5", "message_text":" Pc with a mouse", "message_nick":"Admin"},
        {"message_id":"6", "message_text":"Keyboard", "message_nick":"Admin"},
        {"message_id":"7", "message_text":"iPhone", "message_nick":"Admin"},
        {"message_id":"8", "message_text":"Gym", "message_nick":"Admin"}]"
}'
Run Code Online (Sandbox Code Playgroud)

这是我的查询:

curl -XGET 'http://localhost:9200/thread_and_messages/thread/_search' -d 
'{"query": {
    "bool": {
        "must": [
            {"match": {"thread_name": "windows"}}, 
            {"nested": …
Run Code Online (Sandbox Code Playgroud)

search-engine elasticsearch

3
推荐指数
1
解决办法
4900
查看次数

标签 统计

elasticsearch ×3

java ×1

nested ×1

search-engine ×1