私は初めてで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 つの結果が得られるはずです。
私が見つけたもう 1 つの奇妙な点は、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
います。
よろしく。