Я использую Elasticsearch 2.2.1 для поиска документов, относящихся к определенному географическому расположению (в пределах коробки для боудинга). Я хочу создать перколятор, который я могу использовать, чтобы проверить, связан ли новый документ с существующим запросом.Как использовать точечную нотацию в геокоркете
Это прекрасно работает, если я поставил кофейник в индекс, содержащий документы, но из-за упоминания вопроса в этом document и обходной путь упомянул here мне нужно поставить просачиваются запросы в специальный индекс Percolator.
Когда я пытаюсь поставить кофейник в этот индекс:
PUT /mypercindex/.percolator/1
{"query": {"filtered": {"filter":
{"bool":
{"should":
[
{"geo_bounding_box":
{"location.coordinates":
{"bottom_right":
{"lat":50.0,"lon":8.0}
,"top_left":
{"lat":54.0,"lon":3.0}
}
}
}
]
}
}
}}}
я получаю сообщение об ошибке сказав, что:
Строгий разрешение поля и никакого отображения поля не могут быть найдены в поле с имя [местоположение.координаты]
В документации на перколятор mentioned, что в случае выделенного индекса перколятора вы n ПЕД к:
убедитесь, что отображения из нормального индекса также доступны по индексу просачивается
Это может вызвать мой вопрос, но я не могу найти документацию о том, как сделать отображение из одного индекс доступен в другом. Я попытался добавить выделенный индекс перколятора с тем же отображением, что и индекс моего документа, но когда я это делаю, я все равно получаю то же сообщение об ошибке.
Отображение моего индекса документа напоминает это:
{"my_mapping": {
"dynamic":"strict",
"properties":{
"body":{
"properties":{
"author":{
"type":"string",
"index":"not_analyzed"
},
"hashtags":{
"type":"string",
"index":"not_analyzed"
},
"language":{
"type":"string",
"index":"not_analyzed"
}
,"text":{
"type":"string",
"analyzer":"stopwords"
},
"title":{
"type":"string",
"analyzer":"stopwords"
}
}
},
"location":{
"properties":{
"coordinates":{
"type":"geo_point"
},
"names":{
"type":"string",
"analyzer":"standard"
}
}
}
}
}}
Любая помощь будет принята с благодарностью!