Java源码示例:org.elasticsearch.index.query.MoreLikeThisQueryBuilder
示例1
@Override
public Page<EsItem> recommend(List<String> itemIds, int page, int size) {
Pageable pageable = PageRequest.of(page, size);
String[] itemCatNames;
if (itemIds.size() != 0) {
List<EsItem> esItems = itemRepository.findByItemIdIn(itemIds);
itemCatNames = esItems.stream().map(EsItem::getItemCatName).toArray(String[]::new);
}
else {
itemCatNames = new String[] { "手机" };
}
System.out.println(Arrays.toString(itemCatNames));
MoreLikeThisQueryBuilder moreLikeThisQueryBuilder = QueryBuilders
.moreLikeThisQuery(new String[] { "itemCatName" }, itemCatNames, null).minTermFreq(1);
NativeSearchQueryBuilder nativeSearchQueryBuilder = new NativeSearchQueryBuilder();
nativeSearchQueryBuilder.withQuery(moreLikeThisQueryBuilder).withPageable(pageable)
.withSort(SortBuilders.fieldSort("sale").order(SortOrder.DESC));
NativeSearchQuery query = nativeSearchQueryBuilder.build();
// return elasticsearchTemplate.queryForPage(query, EsItem.class);
return itemRepository.search(query);
}
示例2
public MoreLikeThisQueryBuilder.Item buildMLTItem(String id) {
return new MoreLikeThisQueryBuilder.Item(getIndexName(), getIndexType(), id);
}
示例3
protected MoreLikeThisQueryBuilder regMoreLikeThisQueryQ(String name, String[] likeTexts) {
MoreLikeThisQueryBuilder moreLikeThisQuery = QueryBuilders.moreLikeThisQuery(new String[] { name }, likeTexts, null);
regQ(moreLikeThisQuery);
return moreLikeThisQuery;
}
示例4
protected MoreLikeThisQueryBuilder regMoreLikeThisQueryQ(String name, String[] likeTexts) {
MoreLikeThisQueryBuilder moreLikeThisQuery = QueryBuilders.moreLikeThisQuery(new String[] { name }, likeTexts, null);
regQ(moreLikeThisQuery);
return moreLikeThisQuery;
}
示例5
protected MoreLikeThisQueryBuilder regMoreLikeThisQueryQ(String name, String[] likeTexts) {
MoreLikeThisQueryBuilder moreLikeThisQuery = QueryBuilders.moreLikeThisQuery(new String[] { name }, likeTexts, null);
regQ(moreLikeThisQuery);
return moreLikeThisQuery;
}