Reputation: 310
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"
}
}
}
}
}
}
Upvotes: 0
Views: 100
Reputation: 217304
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"
},
Upvotes: 1