elasticsearch - 如果字段包含某些特定字符串,则搜索Elasticsearch 2.4

标签 elasticsearch lucene elasticsearch-2.0 elasticsearch-query

使用了Elasticsearch 2.4.1版,Lucene 5.5.2版。

我面临的问题是我有如下文件:

{
                "_index": "_myIndex",
                "_type": "_mytype",
                "_id": "76be12a4-037d-45e2-8941-8228287fcae4",
                "_source": {
                    "eventID": "76be12a4-037d-45e2-8941-8228287fcae4",
                    "receivedTimestamp": 1497591418899,
                    "producerName": "_myProducer",
                    "eventName": "event1",
                    "message": "This is a query regarding elasticsearch. Return me this document if it contains elasticsearch",
                    "timestamp": "1497591418000"
                }
}

当我使用下面的查询进行搜索时,我没有得到文档,而是看到了
curl -XGET 'http://localhost:9200/_myIndex/_search?pretty' -H 'Content-Type: application/json' -d '{ "query": { "match": { "message": "elasticsearch" }}}'

Returns:
{
  "took" : 8,
  "timed_out" : false,
  "_shards" : {
    "total" : 10,
    "successful" : 10,
    "failed" : 0
  },
  "hits" : {
    "total" : 0,
    "max_score" : null,
    "hits" : [ ]
  }
}

任何帮助,将不胜感激。
我是Elasticsearch的新手。

索引的映射:
{
    "_myIndex": {
        "mappings": {
            "_myType": {
                "properties": {
                    "eventID": {
                        "type": "string",
                        "index": "not_analyzed"
                    },
                    "eventName": {
                        "type": "string",
                        "index": "not_analyzed"
                    },
                    "message": {
                        "type": "string",
                        "index": "no"
                    },
                    "producerName": {
                        "type": "string",
                        "index": "not_analyzed"
                    },
                    "query": {
                        "properties": {
                            "bool": {
                                "properties": {
                                    "must": {
                                        "properties": {
                                            "range": {
                                                "properties": {
                                                    "timestamp": {
                                                        "properties": {
                                                            "gte": {
                                                                "type": "string"
                                                            },
                                                            "lt": {
                                                                "type": "string"
                                                            }
                                                        }
                                                    }
                                                }
                                            },
                                            "term": {
                                                "properties": {
                                                    "eventName": {
                                                        "properties": {
                                                            "value": {
                                                                "type": "string"
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "receivedTimestamp": {
                        "type": "long"
                    },
                    "size": {
                        "type": "long"
                    },
                    "timestamp": {
                        "type": "long"
                    }
                }
            }
        }
    }
}

最佳答案

问题在于您的message字段未建立索引("index": "no"),因此无法搜索。

您需要删除索引,然后将消息字段映射修改为下面的映射,然后为数据重新编制索引,这样才能正常工作。

                "message": {
                    "type": "string"
                },

关于elasticsearch - 如果字段包含某些特定字符串,则搜索Elasticsearch 2.4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44626860/

相关文章:

node.js - 如何根据汇总结果进行计算?

api - Elasticsearch -- 获取过去 24 小时内日志类型的计数

windows - Elasticsearch 安装问题 : System has not been booted with systemd as init system (PID 1). 无法运行

elasticsearch - Elasticsearch未分析字段

php - Cakephp3 ElasticSearch查询Q

java - lucene 的总点击次数

c# - Lucene(.Net)中是否存在WHERE子句?

java - 我是否会通过具有相同的 @Field name 值来覆盖或添加到 Lucene 索引

elasticsearch - ElasticSearch:如何根据字段值提高分数?

java - 如何在 Elasticsearch 中索引 pdf 文档内容?