Hi,
I am new to ES and trying to search using java apis. I am unable to figure
out how I can provide filed specific boosting using the java apis.
Here is the example:
My index document looks like:
_source": {
- "th_id": 1,
- "th_name": "test name",
- "th_description": "test desc",
- "th_image": "test-img",
- "th_slug": "Make-Me-Smart",
- "th_show_title": "Coast Tech Podcast",
- "th_sh_category": "Alternative Health
}
When i search for keywords I want to boost the results higher if they found
in the "th_name" compared to they're found in some other fields.
Currently I am using below code to do search:
QueryBuilder qb1 = QueryBuilders.matchAllQuery();
FilterBuilder fb = FilterBuilders.orFilter(
FilterBuilders.termFilter("th_name", keyword),
FilterBuilders.termFilter("th_description", keyword),
FilterBuilders.termFilter("th_show_title", keyword),
FilterBuilders.termFilter("th_sh_category", keyword)
);
// WildcardQueryBuilder wqb = new WildcardQueryBuilder(name,
wildcard)
log.info("Executing Query: " + qb1.toString());
SearchResponse response =
client.prepareSearch("talk").setTypes("themes")
.setSearchType(SearchType.DFS_QUERY_THEN_FETCH).setQuery(qb1).setFilter(fb)
.setFrom(start).setSize(maxRows)
.setExplain(true).execute().actionGet();
Is there anything I can do at query time to boost the document if the
keyword is found in "th_name" field compared to found in other fields?
--
You received this message because you are subscribed to the Google Groups "elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email to elasticsearch+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.