使用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" } } } } } }Used elasticsearch version 2.4.1, lucene version 5.5.2.
Issue I am facing is I am having documents like below:
{ "_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" } }When I search using below query I don't get the document instead I see
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" : [ ] } }Any help would be appreciated. I am newbie to Elasticsearch.
The mapping of the index:
{ "_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" },The problem lies in the fact that your message field is not indexed ("index": "no"), hence not searchable.
You need to delete your index, then modify your message field mapping to the mapping below, then reindex your data and it will work.
"message": { "type": "string" },更多推荐
发布评论