2

私は初めてで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います。

よろしく。

4

1 に答える 1