Я новичок в elasticseach
, и у меня возникли проблемы с добавлением фильтров к моим запросам.
Мои доменные классы такие:
Class A {
String name
A_Status status
static searchable = {
status component: true
}
}
Class AImpl extends A {
}
Class A_Status {
String name
static searchable = {
root : false
only = 'name'
}
}
На моем контроллере я делаю запрос:
def res = elasticSearchService.search()
{
bool {
must {
term("status.name": "ACTIVE")
}
}
}
Я попытался изменить поле searchable
на AImpl
или поставить "searchable = true"
, но получил те же результаты, запрос всегда пуст и должен получить 4 результата.
Еще одна странная вещь, которую я обнаружил, заключается в том, что поиск по uri дает ожидаемый результат, а запрос тела — нет.
curl -XGET 'http://localhost:9200/com.sisconline.entities/_search?q=status.name=ACTIVE'
Это 4 удара.
curl -XPOST 'http://localhost:9200/com.sisconline.entities/_search' -d '{
"query" : {
"term":{ "status.name":"ACTIVE"}
}
}'
Это получает 0 хитов.
Я использую Grails 2.3.4
и elasticsearch plugin 0.0.3.5
.
С уважением.