0
意向を休みます。ElasticsearchのJava APIのMoreLikeThisは、エンドポイント
GET /index/type/_search
{
"query": {
"filtered": {
"query": {
"more_like_this": {
"fields": [
"title",
"body",
"description",
"organisations",
"locations"
],
"min_term_freq": 2,
"max_query_terms": 25,
"ids": [
"http://xxx/doc/doc"
]
}
},
"filter": {
"range": {
"datePublished": {
"gte": "2016-01-01T12:30:00+01:00"
}
}
}
}
},
"fields": [
"title",
"description",
"datePublished"
]
}
そして、これは上記のための私のJava実装である:
FilteredQueryBuilder queryBuilder = new FilteredQueryBuilder(QueryBuilders.matchAllQuery(),FilterBuilders.rangeFilter("datePublished").gte(("2016-01-01T12:30:00+01:00")));
SearchSourceBuilder query = SearchSourceBuilder.searchSource().query(queryBuilder);
return client.prepareMoreLikeThis("index", "type", "http://xxx/doc/doc")
.setField("title", "description", "body", "organisations","locations")
.setMinTermFreq(2)
.maxQueryTerms(25)
.setSearchSource(query);
しかし、結果ははるかにエンドポイントが戻ったmore_like_this
残りの部分から異なっています。私はインデックス内の私の全文書の約4分の5のマッチを得ています。フィルタのいずれもES v1.4.2
とv1.6.2
どれアドバイスplease.Thanks
異なる日付公開フィルタ – alpert
あなたは日付の違いを意味しますか?もしそうなら、それはこの記事のためにこれを書く私の部分の愚かなタイプミスでした。そのフィルタ機構の違いが精巧であれば、ありがとう@alpert – DaddyMoe