ElasticsearchOperations查詢方法解析

	/**
	 *  1. 根據條件查詢
	 * Execute the criteria query against elasticsearch and return result as {@link List}
	 *
	 * @param query 字段名稱邏輯拼接字段的值,支持排序和分頁
	 * @param clazz
	 * @param <T>
	 * @return
	 */
	<T> List<T> queryForList(CriteriaQuery query, Class<T> clazz);

	/**
	 *  2. 根據字符串查詢
	 * Execute the string query against elasticsearch and return result as {@link List}
	 *
	 * @param query
	 * @param clazz
	 * @param <T>
	 * @return
	 */
	<T> List<T> queryForList(StringQuery query, Class<T> clazz);

	/**
	 *  3. 根據搜索查詢
	 * Execute the search query against elasticsearch and return result as {@link List}
	 *
	 * @param query
	 * @param clazz
	 * @param <T>
	 * @return
	 */
	<T> List<T> queryForList(SearchQuery query, Class<T> clazz);

	/**
	 *  4. 根據多搜索查詢
	 *    一個接口默認方法,實現類可以調用
	 * Execute the multi search query against elasticsearch and return result as {@link List}
	 *
	 * @param queries
	 * @param clazz
	 * @param <T>
	 * @return
	 */
	default <T> List<List<T>> queryForList(List<SearchQuery> queries, Class<T> clazz) {
		return queryForPage(queries, clazz).stream().map(Page::getContent).collect(Collectors.toList());
	}
	
	/**
	 * 5. 通過ids,批量查詢
	 * Execute a multiGet against elasticsearch for the given ids
	 *
	 * @param searchQuery
	 * @param clazz
	 * @return
	 */
	<T> List<T> multiGet(SearchQuery searchQuery, Class<T> clazz);

	/**
	 * 6. 通過ids和查詢條件,批量查詢
	 * Execute a multiGet against elasticsearch for the given ids with MultiGetResultMapper
	 *
	 * @param searchQuery
	 * @param clazz
	 * @param multiGetResultMapper
	 * @return
	 */
	<T> List<T> multiGet(SearchQuery searchQuery, Class<T> clazz, MultiGetResultMapper multiGetResultMapper);

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章