Intention: ElasticSearch Java requête MoreLikeThis en Java pour faire exactement ce que la première ci-dessous more_like_this
requête filtrée via le point final de repos /_search
est en train de faire.ElasticSearch API Java MoreLikeThis pas de documents de retour par rapport à « _search » repos point final
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"
]
}
Et ceci est mon implémentation de Java pour ce qui précède:
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);
Cependant, les résultats diffèrent loin du point final de repos more_like_this
était de retour. Je reçois des correspondances d'environ 4/5 de tous mes documents dans l'index. Comme si aucun des filtres sont appliqués
ciblage ES v1.4.2
et v1.6.2
Tous les conseils please.Thanks
Vous avez différents datePublié les filtres – alpert
vous voulez dire la différence de dates? si c'était le cas, c'était une faute de frappe de ma part d'écrire ceci pour ce post. Si c'est une différence dans le mécanisme de filtrage, veuillez élaborer, merci @alpert – DaddyMoe