Search in sources :

Example 1 with Hit

use of io.searchbox.core.SearchResult.Hit in project dq-easy-cloud by dq-open-cloud.

the class TransportClient method prefixQuery.

/**
 * 前缀查询
 *
 * @throws Exception
 */
@Test
public void prefixQuery() throws Exception {
    SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
    // 前缀查询
    QueryBuilder queryBuilder = QueryBuilders.prefixQuery("name", "T:o");
    searchSourceBuilder.query(queryBuilder);
    searchSourceBuilder.size(10);
    searchSourceBuilder.from(0);
    String query = searchSourceBuilder.toString();
    System.out.println(query);
    Search search = new Search.Builder(query).addIndex(indexName).addType(typeName).build();
    SearchResult result = jestClient.execute(search);
    List<Hit<Object, Void>> hits = result.getHits(Object.class);
    System.out.println("Size:" + hits.size());
    for (Hit<Object, Void> hit : hits) {
        Object news = hit.source;
        System.out.println(news.toString());
    }
}
Also used : Hit(io.searchbox.core.SearchResult.Hit) Search(io.searchbox.core.Search) SearchResult(io.searchbox.core.SearchResult) JsonObject(com.google.gson.JsonObject) QueryBuilder(org.elasticsearch.index.query.QueryBuilder) SearchSourceBuilder(org.elasticsearch.search.builder.SearchSourceBuilder) Test(org.junit.Test)

Example 2 with Hit

use of io.searchbox.core.SearchResult.Hit in project dq-easy-cloud by dq-open-cloud.

the class TransportClient method rangeQuery.

/**
 * 区间查询
 *
 * @throws Exception
 */
@Test
public void rangeQuery() throws Exception {
    SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
    QueryBuilder queryBuilder = QueryBuilders.rangeQuery("birth").gte("2016-09-01T00:00:00").lte("2016-10-01T00:00:00").includeLower(true).includeUpper(// 区间查询
    true);
    searchSourceBuilder.query(queryBuilder);
    searchSourceBuilder.size(10);
    searchSourceBuilder.from(0);
    String query = searchSourceBuilder.toString();
    System.out.println(query);
    Search search = new Search.Builder(query).addIndex(indexName).addType(typeName).build();
    SearchResult result = jestClient.execute(search);
    List<Hit<Object, Void>> hits = result.getHits(Object.class);
    System.out.println("Size:" + hits.size());
    for (Hit<Object, Void> hit : hits) {
        Object news = hit.source;
        System.out.println(news.toString());
    }
}
Also used : Hit(io.searchbox.core.SearchResult.Hit) Search(io.searchbox.core.Search) SearchResult(io.searchbox.core.SearchResult) JsonObject(com.google.gson.JsonObject) QueryBuilder(org.elasticsearch.index.query.QueryBuilder) SearchSourceBuilder(org.elasticsearch.search.builder.SearchSourceBuilder) Test(org.junit.Test)

Example 3 with Hit

use of io.searchbox.core.SearchResult.Hit in project dq-easy-cloud by dq-open-cloud.

the class TransportClient method createSearch.

/**
 * 搜索高亮显示
 *
 * @throws Exception
 */
@Test
public void createSearch() throws Exception {
    SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
    searchSourceBuilder.query(QueryBuilders.termQuery("view", "200"));
    HighlightBuilder highlightBuilder = new HighlightBuilder();
    // 高亮title
    highlightBuilder.field("view");
    // 高亮标签
    highlightBuilder.preTags("<em>").postTags("</em>");
    // 高亮内容长度
    highlightBuilder.fragmentSize(500);
    // searchSourceBuilder.highlight(highlightBuilder);
    System.out.println(searchSourceBuilder.toString());
    Search search = new Search.Builder(searchSourceBuilder.toString()).addIndex(indexName).build();
    SearchResult result = jestClient.execute(search);
    System.out.println(result.getJsonString());
    System.out.println("本次查询共查到:" + result.getTotal() + "篇文章!");
    List<Hit<CsdnBlog, Void>> hits = result.getHits(CsdnBlog.class);
    System.out.println(hits.size());
    for (Hit<CsdnBlog, Void> hit : hits) {
        CsdnBlog source = hit.source;
        // 获取高亮后的内容
        Map<String, List<String>> highlight = hit.highlight;
        // 高亮后的title
        List<String> views = highlight.get("view");
        if (views != null) {
            source.setView(views.get(0));
        }
        System.out.println("标题:" + source.getTitile());
        System.out.println("内容:" + source.getContent());
        System.out.println("浏览数:" + source.getView());
        System.out.println("标签:" + source.getTag());
        System.out.println("作者:" + source.getAuthor());
    }
}
Also used : GsonBuilder(com.google.gson.GsonBuilder) HighlightBuilder(org.elasticsearch.search.fetch.subphase.highlight.HighlightBuilder) SearchSourceBuilder(org.elasticsearch.search.builder.SearchSourceBuilder) QueryBuilder(org.elasticsearch.index.query.QueryBuilder) SearchResult(io.searchbox.core.SearchResult) SearchSourceBuilder(org.elasticsearch.search.builder.SearchSourceBuilder) Hit(io.searchbox.core.SearchResult.Hit) Search(io.searchbox.core.Search) List(java.util.List) HighlightBuilder(org.elasticsearch.search.fetch.subphase.highlight.HighlightBuilder) Test(org.junit.Test)

Example 4 with Hit

use of io.searchbox.core.SearchResult.Hit in project dq-easy-cloud by dq-open-cloud.

the class TransportClient method wildcardQuery.

/**
 * 通配符和正则表达式查询
 *
 * @throws Exception
 */
@Test
public void wildcardQuery() throws Exception {
    SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
    // 通配符和正则表达式查询
    QueryBuilder queryBuilder = QueryBuilders.wildcardQuery("title", "*:*");
    searchSourceBuilder.query(queryBuilder);
    searchSourceBuilder.size(10);
    searchSourceBuilder.from(0);
    String query = searchSourceBuilder.toString();
    System.out.println(query);
    Search search = new Search.Builder(query).addIndex(indexName).addType(typeName).build();
    SearchResult result = jestClient.execute(search);
    List<Hit<Object, Void>> hits = result.getHits(Object.class);
    System.out.println("Size:" + hits.size());
    for (Hit<Object, Void> hit : hits) {
        Object news = hit.source;
        System.out.println(news.toString());
    }
}
Also used : Hit(io.searchbox.core.SearchResult.Hit) Search(io.searchbox.core.Search) SearchResult(io.searchbox.core.SearchResult) JsonObject(com.google.gson.JsonObject) QueryBuilder(org.elasticsearch.index.query.QueryBuilder) SearchSourceBuilder(org.elasticsearch.search.builder.SearchSourceBuilder) Test(org.junit.Test)

Example 5 with Hit

use of io.searchbox.core.SearchResult.Hit in project ff4j by ff4j.

the class ElasticQueryBuilder method getFeatureTechIdByGroup.

@SuppressWarnings({ "rawtypes" })
public Set<String> getFeatureTechIdByGroup(String groupName) {
    SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
    searchSourceBuilder.query(QueryBuilders.matchQuery("group", groupName));
    Search search = // 
    new Search.Builder(searchSourceBuilder.toString()).addIndex(// 
    connection.getIndexName()).addType(// 
    ElasticConstants.TYPE_FEATURE).build();
    SearchResult result = connection.search(search, true);
    Set<String> metadatas = new HashSet<String>();
    if (null != result && result.isSucceeded()) {
        List<Hit<Map, Void>> features = result.getHits(Map.class);
        for (Hit<Map, Void> hit : features) {
            metadatas.add(hit.source.get(JestResult.ES_METADATA_ID).toString());
        }
    }
    return metadatas;
}
Also used : Hit(io.searchbox.core.SearchResult.Hit) Search(io.searchbox.core.Search) SearchResult(io.searchbox.core.SearchResult) Map(java.util.Map) SearchSourceBuilder(org.elasticsearch.search.builder.SearchSourceBuilder) HashSet(java.util.HashSet)

Aggregations

Search (io.searchbox.core.Search)12 Hit (io.searchbox.core.SearchResult.Hit)12 SearchSourceBuilder (org.elasticsearch.search.builder.SearchSourceBuilder)12 SearchResult (io.searchbox.core.SearchResult)9 Test (org.junit.Test)8 QueryBuilder (org.elasticsearch.index.query.QueryBuilder)7 JsonObject (com.google.gson.JsonObject)6 GsonBuilder (com.google.gson.GsonBuilder)2 HighlightBuilder (org.elasticsearch.search.fetch.subphase.highlight.HighlightBuilder)2 HashSet (java.util.HashSet)1 List (java.util.List)1 Map (java.util.Map)1