当前位置: 首页>>代码示例>>Java>>正文


Java CollapseBuilder类代码示例

本文整理汇总了Java中org.elasticsearch.search.collapse.CollapseBuilder的典型用法代码示例。如果您正苦于以下问题:Java CollapseBuilder类的具体用法?Java CollapseBuilder怎么用?Java CollapseBuilder使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


CollapseBuilder类属于org.elasticsearch.search.collapse包,在下文中一共展示了CollapseBuilder类的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: updateRequestWithCollapse

import org.elasticsearch.search.collapse.CollapseBuilder; //导入依赖的package包/类
protected void updateRequestWithCollapse(Select select, SearchRequestBuilder request) throws SqlParseException {
    JsonFactory jsonFactory = new JsonFactory();
    for (Hint hint : select.getHints()) {
        if (hint.getType() == HintType.COLLAPSE && hint.getParams() != null && 0 < hint.getParams().length) {
            try (JsonXContentParser parser = new JsonXContentParser(NamedXContentRegistry.EMPTY, jsonFactory.createParser(hint.getParams()[0].toString()))) {
                request.setCollapse(CollapseBuilder.fromXContent(parser));
            } catch (IOException e) {
                throw new SqlParseException("could not parse collapse hint: " + e.getMessage());
            }
        }
    }
}
 
开发者ID:NLPchina,项目名称:elasticsearch-sql,代码行数:13,代码来源:QueryAction.java

示例2: populateBuffer

import org.elasticsearch.search.collapse.CollapseBuilder; //导入依赖的package包/类
@Override
protected void populateBuffer() {
    // not used yet or returned empty results
    if (lastDate == null) {
        lastDate = new Date();
        lastStartOffset = 0;
    }
    // been running same query for too long and paging deep?
    else if (maxStartOffset != -1 && lastStartOffset > maxStartOffset) {
        LOG.info("Reached max start offset {}", lastStartOffset);
        lastStartOffset = 0;
    }

    String formattedLastDate = ISODateTimeFormat.dateTimeNoMillis().print(
            lastDate.getTime());

    LOG.info("{} Populating buffer with nextFetchDate <= {}", logIdprefix,
            formattedLastDate);

    QueryBuilder queryBuilder = QueryBuilders.rangeQuery("nextFetchDate")
            .lte(formattedLastDate);

    if (filterQuery != null) {
        queryBuilder = boolQuery().must(queryBuilder).filter(
                QueryBuilders.queryStringQuery(filterQuery));
    }

    SearchRequestBuilder srb = client.prepareSearch(indexName)
            .setTypes(docType).setSearchType(SearchType.QUERY_THEN_FETCH)
            .setQuery(queryBuilder).setFrom(lastStartOffset)
            .setSize(maxBucketNum).setExplain(false);

    // https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-preference.html
    // _shards:2,3
    if (shardID != -1) {
        srb.setPreference("_shards:" + shardID);
    }

    if (StringUtils.isNotBlank(totalSortField)) {
        FieldSortBuilder sorter = SortBuilders.fieldSort(totalSortField)
                .order(SortOrder.ASC);
        srb.addSort(sorter);
    }

    CollapseBuilder collapse = new CollapseBuilder(partitionField);
    srb.setCollapse(collapse);

    // group expansion -> sends sub queries for each bucket
    if (maxURLsPerBucket > 1) {
        InnerHitBuilder ihb = new InnerHitBuilder();
        ihb.setSize(maxURLsPerBucket);
        ihb.setName("urls_per_bucket");
        // sort within a bucket
        if (StringUtils.isNotBlank(bucketSortField)) {
            List<SortBuilder<?>> sorts = new LinkedList<>();
            FieldSortBuilder bucketsorter = SortBuilders.fieldSort(
                    bucketSortField).order(SortOrder.ASC);
            sorts.add(bucketsorter);
            ihb.setSorts(sorts);
        }
        collapse.setInnerHits(ihb);
    }

    // dump query to log
    LOG.debug("{} ES query {}", logIdprefix, srb.toString());

    timeStartESQuery = System.currentTimeMillis();
    isInESQuery.set(true);
    srb.execute(this);
}
 
开发者ID:DigitalPebble,项目名称:storm-crawler,代码行数:71,代码来源:CollapsingSpout.java

示例3: collapse

import org.elasticsearch.search.collapse.CollapseBuilder; //导入依赖的package包/类
public CollapseBuilder collapse() {
    return collapse;
}
 
开发者ID:justor,项目名称:elasticsearch_my,代码行数:4,代码来源:SearchSourceBuilder.java

示例4: setCollapse

import org.elasticsearch.search.collapse.CollapseBuilder; //导入依赖的package包/类
public SearchRequestBuilder setCollapse(CollapseBuilder collapse) {
    sourceBuilder().collapse(collapse);
    return this;
}
 
开发者ID:justor,项目名称:elasticsearch_my,代码行数:5,代码来源:SearchRequestBuilder.java

示例5: testCollapseSingleHit

import org.elasticsearch.search.collapse.CollapseBuilder; //导入依赖的package包/类
public void testCollapseSingleHit() throws IOException {
    final int iters = randomIntBetween(5, 10);
    for (int i = 0; i < iters; i++) {
        SearchHits collapsedHits = new SearchHits(new SearchHit[]{new SearchHit(2, "ID", new Text("type"),
            Collections.emptyMap()), new SearchHit(3, "ID", new Text("type"),
            Collections.emptyMap())}, 1, 1.0F);
        AtomicBoolean executedMultiSearch = new AtomicBoolean(false);
        QueryBuilder originalQuery = randomBoolean() ? null : QueryBuilders.termQuery("foo", "bar");

        MockSearchPhaseContext mockSearchPhaseContext = new MockSearchPhaseContext(1);
        String collapseValue = randomBoolean() ? null : "boom";
        mockSearchPhaseContext.getRequest().source(new SearchSourceBuilder()
            .collapse(new CollapseBuilder("someField").setInnerHits(new InnerHitBuilder().setName("foobarbaz"))));
        mockSearchPhaseContext.getRequest().source().query(originalQuery);
        mockSearchPhaseContext.searchTransport = new SearchTransportService(
            Settings.builder().put("search.remote.connect", false).build(), null, null) {

            @Override
            void sendExecuteMultiSearch(MultiSearchRequest request, SearchTask task, ActionListener<MultiSearchResponse> listener) {
                assertTrue(executedMultiSearch.compareAndSet(false, true));
                assertEquals(1, request.requests().size());
                SearchRequest searchRequest = request.requests().get(0);
                assertTrue(searchRequest.source().query() instanceof BoolQueryBuilder);
                BoolQueryBuilder groupBuilder = (BoolQueryBuilder) searchRequest.source().query();
                if (collapseValue == null) {
                    assertThat(groupBuilder.mustNot(), Matchers.contains(QueryBuilders.existsQuery("someField")));
                } else {
                    assertThat(groupBuilder.filter(), Matchers.contains(QueryBuilders.matchQuery("someField", "boom")));
                }
                if (originalQuery != null) {
                    assertThat(groupBuilder.must(), Matchers.contains(QueryBuilders.termQuery("foo", "bar")));
                }
                assertArrayEquals(mockSearchPhaseContext.getRequest().indices(), searchRequest.indices());
                assertArrayEquals(mockSearchPhaseContext.getRequest().types(), searchRequest.types());


                InternalSearchResponse internalSearchResponse = new InternalSearchResponse(collapsedHits,
                    null, null, null, false, null, 1);
                SearchResponse response = mockSearchPhaseContext.buildSearchResponse(internalSearchResponse, null);
                listener.onResponse(new MultiSearchResponse(new MultiSearchResponse.Item[]{
                    new MultiSearchResponse.Item(response, null)
                }));

            }
        };

        SearchHits hits = new SearchHits(new SearchHit[]{new SearchHit(1, "ID", new Text("type"),
            Collections.singletonMap("someField", new SearchHitField("someField", Collections.singletonList(collapseValue))))},
            1, 1.0F);
        InternalSearchResponse internalSearchResponse = new InternalSearchResponse(hits, null, null, null, false, null, 1);
        SearchResponse response = mockSearchPhaseContext.buildSearchResponse(internalSearchResponse, null);
        AtomicReference<SearchResponse> reference = new AtomicReference<>();
        ExpandSearchPhase phase = new ExpandSearchPhase(mockSearchPhaseContext, response, r ->
            new SearchPhase("test") {
                @Override
                public void run() throws IOException {
                    reference.set(r);
                }
            }
        );

        phase.run();
        mockSearchPhaseContext.assertNoFailure();
        assertNotNull(reference.get());
        SearchResponse theResponse = reference.get();
        assertSame(theResponse, response);
        assertEquals(1, theResponse.getHits().getHits()[0].getInnerHits().size());
        assertSame(theResponse.getHits().getHits()[0].getInnerHits().get("foobarbaz"), collapsedHits);
        assertTrue(executedMultiSearch.get());
        assertEquals(1, mockSearchPhaseContext.phasesExecuted.get());
    }
}
 
开发者ID:justor,项目名称:elasticsearch_my,代码行数:73,代码来源:ExpandSearchPhaseTests.java

示例6: testFailOneItemFailsEntirePhase

import org.elasticsearch.search.collapse.CollapseBuilder; //导入依赖的package包/类
public void testFailOneItemFailsEntirePhase() throws IOException {
    AtomicBoolean executedMultiSearch = new AtomicBoolean(false);

    SearchHits collapsedHits = new SearchHits(new SearchHit[]{new SearchHit(2, "ID", new Text("type"),
        Collections.emptyMap()), new SearchHit(3, "ID", new Text("type"),
        Collections.emptyMap())}, 1, 1.0F);
    MockSearchPhaseContext mockSearchPhaseContext = new MockSearchPhaseContext(1);
    String collapseValue = randomBoolean() ? null : "boom";
    mockSearchPhaseContext.getRequest().source(new SearchSourceBuilder()
        .collapse(new CollapseBuilder("someField").setInnerHits(new InnerHitBuilder().setName("foobarbaz"))));
    mockSearchPhaseContext.searchTransport = new SearchTransportService(
        Settings.builder().put("search.remote.connect", false).build(), null, null) {

        @Override
        void sendExecuteMultiSearch(MultiSearchRequest request, SearchTask task, ActionListener<MultiSearchResponse> listener) {
            assertTrue(executedMultiSearch.compareAndSet(false, true));
            InternalSearchResponse internalSearchResponse = new InternalSearchResponse(collapsedHits,
                null, null, null, false, null, 1);
            SearchResponse response = mockSearchPhaseContext.buildSearchResponse(internalSearchResponse, null);
            listener.onResponse(new MultiSearchResponse(new MultiSearchResponse.Item[]{
                new MultiSearchResponse.Item(null, new RuntimeException("boom")),
                new MultiSearchResponse.Item(response, null)
            }));
        }
    };

    SearchHits hits = new SearchHits(new SearchHit[]{new SearchHit(1, "ID", new Text("type"),
        Collections.singletonMap("someField", new SearchHitField("someField", Collections.singletonList(collapseValue)))),
        new SearchHit(2, "ID2", new Text("type"),
            Collections.singletonMap("someField", new SearchHitField("someField", Collections.singletonList(collapseValue))))}, 1,
        1.0F);
    InternalSearchResponse internalSearchResponse = new InternalSearchResponse(hits, null, null, null, false, null, 1);
    SearchResponse response = mockSearchPhaseContext.buildSearchResponse(internalSearchResponse, null);
    AtomicReference<SearchResponse> reference = new AtomicReference<>();
    ExpandSearchPhase phase = new ExpandSearchPhase(mockSearchPhaseContext, response, r ->
        new SearchPhase("test") {
            @Override
            public void run() throws IOException {
                reference.set(r);
            }
        }
    );
    phase.run();
    assertThat(mockSearchPhaseContext.phaseFailure.get(), Matchers.instanceOf(RuntimeException.class));
    assertEquals("boom", mockSearchPhaseContext.phaseFailure.get().getMessage());
    assertNotNull(mockSearchPhaseContext.phaseFailure.get());
    assertNull(reference.get());
    assertEquals(0, mockSearchPhaseContext.phasesExecuted.get());
}
 
开发者ID:justor,项目名称:elasticsearch_my,代码行数:50,代码来源:ExpandSearchPhaseTests.java


注:本文中的org.elasticsearch.search.collapse.CollapseBuilder类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。