Я использую поиск elasticsearch двигателя и при запуске кода ниже, возвращаемые результаты не соответствуют критериям диапазона (я получаю пункты с опубликованной даты ниже требуемого предела):Range фильтр не работает
#!/bin/bash
curl -X GET 'http://localhost:9200/newsidx/news/_search?pretty' -d '{
"fields": [
"art_text",
"title",
"published",
"category"
],
"query": {
"bool": {
"should": [
{
"fuzzy": {"art_text": {"boost": 89, "value": "google" }}
},
{
"fuzzy": {"art_text": {"boost": 75, "value": "twitter" }}
}
],
"minimum_number_should_match": 1
}
},
"filter" : {
"range" : {
"published" : {
"from" : "2013-04-12 00:00:00"
}
}
}
}
'
Я также попытался поставить предложение диапазона в обязательном порядке, внутри запроса bool, но результаты были одинаковыми.
Редактировать: Я использую поиск elastics для поиска в mongodb через плавательный бассейн реки. Это сценарий, я побежал искать MongoDB дб с ES:
#!/bin/bash
curl -X PUT localhost:9200/_river/mongodb/_meta -d '{
"type":"mongodb",
"mongodb": {
"db": "newsful",
"collection": "news"
},
"index": {
"name": "newsidx",
"type": "news"
}
}'
Кроме этого, я не создавал еще индексов.
Edit 2:
Вид отображений эс:
http://localhost:9200/newsidx/news/_mapping
published: {
type: "string"
}
- это поле 'опубликовано ', индексированное как дата? Можете ли вы разместить свое текущее сопоставление? – javanna
Я отредактировал сообщение, чтобы ответить на ваш вопрос. – Rod0n