Java Code Examples for org.elasticsearch.index.query.QueryBuilders

The following examples show how to use org.elasticsearch.index.query.QueryBuilders. These examples are extracted from open source projects. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
@Override
public QueryBuilder updateElasticsearchQuery(
    Graph graph,
    Elasticsearch5SearchIndex searchIndex,
    QueryBuilder query,
    QueryParameters queryParameters
) {
    List<String> fieldNames = getFieldNames(graph, searchIndex, queryParameters, getField());
    if (fieldNames == null) {
        return query;
    }

    HashMap<String, Object> scriptParams = new HashMap<>();
    scriptParams.put("fieldNames", fieldNames);
    Script script = new Script(ScriptType.INLINE, "painless", scriptSrc, scriptParams);
    return QueryBuilders.functionScoreQuery(query, new ScriptScoreFunctionBuilder(script));
}
 
Example 2
Source Project: youkefu   Source File: KbsTopicRepositoryImpl.java    License: Apache License 2.0 6 votes vote down vote up
@SuppressWarnings("deprecation")
@Override
public Page<KbsTopic> getTopicByCon(BoolQueryBuilder boolQueryBuilder, final int p , final int ps) {

	Page<KbsTopic> pages  = null ;
	
	QueryBuilder beginFilter = QueryBuilders.boolQuery().should(QueryBuilders.missingQuery("begintime")).should(QueryBuilders.rangeQuery("begintime").from(new Date().getTime())) ;
	QueryBuilder endFilter = QueryBuilders.boolQuery().should(QueryBuilders.missingQuery("endtime")).should(QueryBuilders.rangeQuery("endtime").to(new Date().getTime())) ;
	
    NativeSearchQueryBuilder searchQueryBuilder = new NativeSearchQueryBuilder().withQuery(boolQueryBuilder).withFilter(QueryBuilders.boolQuery().must(beginFilter).must(endFilter)).withSort(new FieldSortBuilder("createtime").unmappedType("date").order(SortOrder.DESC));
    
    SearchQuery searchQuery = searchQueryBuilder.build().setPageable(new PageRequest(p, ps)) ;
    if(elasticsearchTemplate.indexExists(KbsTopic.class)){
    	pages = elasticsearchTemplate.queryForPage(searchQuery, KbsTopic.class);
    }
    return pages ; 
}
 
Example 3
Source Project: Spring-Boot-Book   Source File: ByPageTest.java    License: Apache License 2.0 6 votes vote down vote up
@Test
/**
 * Description: 分页查询+排序
 */
public void searchByPageAndSort() {
    // 分页:
    int page = 0;
    int size = 5;//每页文档数

    // 构建查询条件
    NativeSearchQueryBuilder nativeSearchQueryBuilderQueryBuilder = new NativeSearchQueryBuilder();
    // 查询词,只能查询一个汉字,或者一个英文单词
    nativeSearchQueryBuilderQueryBuilder.withQuery(QueryBuilders.termQuery("name", "富"));
    // 搜索,获取结果
    nativeSearchQueryBuilderQueryBuilder.withSort(SortBuilders.fieldSort("id").order(SortOrder.DESC));
    nativeSearchQueryBuilderQueryBuilder.withPageable(PageRequest.of(page, size));
    Page<Product> products = productRepository.search(nativeSearchQueryBuilderQueryBuilder.build());
    // 总条数
    for (Product product : products) {
        System.out.println(product);
    }

}
 
Example 4
Source Project: soundwave   Source File: EsInstanceStore.java    License: Apache License 2.0 6 votes vote down vote up
@Override
public Iterator<EsNameMetaData> getMetaDataByName(String field, String name) throws Exception {

  Preconditions.checkNotNull(field);
  Preconditions.checkNotNull(name);

  QueryBuilder queryBuilder = QueryBuilders.boolQuery()
      .must(QueryBuilders.termQuery(field, name))
      .must(QueryBuilders.termQuery("state", "running"));

  ScrollableResponse<List<EsNameMetaData>> response =
      this.retrieveScrollByQuery(queryBuilder,
          EsMapper.getIncludeFields(EsNameMetaData.class, this.getClass()), BATCHSIZE,
          str -> updateMapper.readValue(str, EsNameMetaData.class));

  EsIterator<EsNameMetaData> iterator =
      new EsIterator<>(response, r -> scrollNext(r.getContinousToken(),
          str -> updateMapper.readValue(str, EsNameMetaData.class)));

  return iterator;
}
 
Example 5
Source Project: Spring-Boot-Book   Source File: FuzzySearchTest.java    License: Apache License 2.0 6 votes vote down vote up
@Test
/**
 * Description: 前缀查询prefixQuery。
 */
public void prefixQuery() {
    // 查询条件
    NativeSearchQueryBuilder nativeSearchQueryBuilderQueryBuilder = new NativeSearchQueryBuilder();
    //  左右模糊
    nativeSearchQueryBuilderQueryBuilder.withQuery(QueryBuilders.prefixQuery("name","士"));
    // 搜索,获取结果
    Page<Product>  products= productRepository.search(nativeSearchQueryBuilderQueryBuilder.build());
    for (Product product : products) {
        System.out.println(product);
    }

}
 
Example 6
Source Project: conductor   Source File: ElasticSearchDAOV5.java    License: Apache License 2.0 6 votes vote down vote up
@Override
public List<String> searchRecentRunningWorkflows(int lastModifiedHoursAgoFrom,
    int lastModifiedHoursAgoTo) {
    DateTime dateTime = new DateTime();
    QueryBuilder q = QueryBuilders.boolQuery()
        .must(QueryBuilders.rangeQuery("updateTime")
            .gt(dateTime.minusHours(lastModifiedHoursAgoFrom)))
        .must(QueryBuilders.rangeQuery("updateTime")
            .lt(dateTime.minusHours(lastModifiedHoursAgoTo)))
        .must(QueryBuilders.termQuery("status", "RUNNING"));

    SearchRequestBuilder s = elasticSearchClient.prepareSearch(indexName)
        .setTypes("workflow")
        .setQuery(q)
        .setSize(5000)
        .addSort("updateTime", SortOrder.ASC);

    SearchResponse response = s.execute().actionGet();
    return StreamSupport.stream(response.getHits().spliterator(), false)
        .map(SearchHit::getId)
        .collect(Collectors.toCollection(LinkedList::new));
}
 
Example 7
Source Project: elasticsearch-carrot2   Source File: ClusteringActionIT.java    License: Apache License 2.0 6 votes vote down vote up
public void testAttributes() throws IOException {
    LingoClusteringAlgorithm algorithm = new LingoClusteringAlgorithm();
    algorithm.desiredClusterCount.set(5);

    Map<String, Object> extract = Attrs.extract(algorithm);
    Attrs.populate(algorithm, extract);

    ClusteringActionResponse result = new ClusteringActionRequestBuilder(client)
        .setQueryHint("data mining")
        .addSourceFieldMapping("title", LogicalField.TITLE)
        .addSourceFieldMapping("content", LogicalField.CONTENT)
        .addAttributes(Attrs.extract(algorithm))
        .setSearchRequest(
          client.prepareSearch()
                .setIndices(INDEX_TEST)
                .setSize(100)
                .setQuery(QueryBuilders.matchAllQuery())
                .setFetchSource(new String[] {"title", "content"}, null))
        .execute().actionGet();

    checkValid(result);
    checkJsonSerialization(result);

    Assertions.assertThat(result.getDocumentGroups().length)
        .isBetween(0, 5 + 1);
}
 
Example 8
Source Project: scava   Source File: ElasticSearchClient.java    License: Eclipse Public License 2.0 6 votes vote down vote up
public SearchHits queryBoostedQueryIndex(String boostedQuery, String field, int resultsSize) throws IOException
{
	if(client==null)
		return null;
	
	QueryBuilder query = QueryBuilders.queryStringQuery(boostedQuery).defaultField(field);
	SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
	sourceBuilder.query(query);
	sourceBuilder.size(resultsSize);
	
	SearchRequest searchRequest = new SearchRequest();
	searchRequest.source(sourceBuilder);
	
	SearchResponse searchResponse = client.search(searchRequest);
	return searchResponse.getHits();
}
 
Example 9
Source Project: occurrence   Source File: OccurrenceSearchEsImpl.java    License: Apache License 2.0 6 votes vote down vote up
private <T> T searchByKey(Long key, Function<SearchHit, T> mapper) {
  //This should be changed to use GetRequest once ElasticSearch stores id correctly
  SearchRequest searchRequest = new SearchRequest();
  SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
  searchSourceBuilder.size(1);
  searchRequest.indices(esIndex);
  searchSourceBuilder.query(QueryBuilders.termQuery(OccurrenceEsField.GBIF_ID.getFieldName(), key));
  searchRequest.source(searchSourceBuilder);
  try {
    SearchHits hits = esClient.search(searchRequest, HEADERS.get()).getHits();
    if (hits != null && hits.totalHits > 0) {
      return mapper.apply(hits.getAt(0));
    }
    return null;
  } catch (IOException ex) {
    throw new SearchException(ex);
  }
}
 
Example 10
Source Project: fess   Source File: SearchHelper.java    License: Apache License 2.0 6 votes vote down vote up
public List<Map<String, Object>> getDocumentListByDocIds(final String[] docIds, final String[] fields,
        final OptionalThing<FessUserBean> userBean, final SearchRequestType searchRequestType) {
    final FessConfig fessConfig = ComponentUtil.getFessConfig();
    return ComponentUtil.getFessEsClient().getDocumentList(
            fessConfig.getIndexDocumentSearchIndex(),
            builder -> {
                final BoolQueryBuilder boolQuery =
                        QueryBuilders.boolQuery().must(QueryBuilders.termsQuery(fessConfig.getIndexFieldDocId(), docIds));
                final QueryHelper queryHelper = ComponentUtil.getQueryHelper();
                if (searchRequestType != SearchRequestType.ADMIN_SEARCH) {
                    final Set<String> roleSet = ComponentUtil.getRoleQueryHelper().build(searchRequestType);
                    if (!roleSet.isEmpty()) {
                        queryHelper.buildRoleQuery(roleSet, boolQuery);
                    }
                }
                builder.setQuery(boolQuery);
                builder.setSize(fessConfig.getPagingSearchPageMaxSizeAsInteger());
                builder.setFetchSource(fields, null);
                queryHelper.processSearchPreference(builder, userBean, String.join(StringUtil.EMPTY, docIds));
                return true;
            });
}
 
Example 11
Source Project: java-study   Source File: EsHighLevelRestSearchTest.java    License: Apache License 2.0 6 votes vote down vote up
/**
 * @return void
 * @Author pancm
 * @Description exist查询
 * @Date 2019/9/17
 * @Param []
 **/
private static void existSearch() throws IOException {
    String type = "_doc";
    String index = "test1";
    // 查询指定的索引库
    SearchRequest searchRequest = new SearchRequest(index);
    searchRequest.types(type);
    SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();

    // 设置查询条件
    sourceBuilder.query(QueryBuilders.existsQuery("msgcode"));
    searchRequest.source(sourceBuilder);
    System.out.println("存在查询的DSL语句:"+sourceBuilder.toString());
    // 同步查询
    SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);
    // 结果
    searchResponse.getHits().forEach(hit -> {
        Map<String, Object> map = hit.getSourceAsMap();
        String string = hit.getSourceAsString();
        System.out.println("存在查询的Map结果:" + map);
        System.out.println("存在查询的String结果:" + string);
    });
    System.out.println("\n=================\n");
}
 
Example 12
public static void main(String[] args) throws IOException {
    RestHighLevelClient client = HighLevelClient.getInstance();
    try{
        QueryBuilder matchQueryBuilder = QueryBuilders.matchQuery("cmd", "weather_hourforcast");
        PercentileRanksAggregationBuilder aggregationBuilder = AggregationBuilders.percentileRanks("utm_ranks",new double[]{200,500,1000,3000,8000}).field("utm").keyed(false);

        SearchRequest searchRequest = new SearchRequest("serverlog_20180710");//限定index
        searchRequest.types("log");//限定type

        SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
        searchSourceBuilder.query(matchQueryBuilder);
        searchSourceBuilder.aggregation(aggregationBuilder);
        searchSourceBuilder.size(0);
        searchRequest.source(searchSourceBuilder);

        SearchResponse searchResponse = client.search(searchRequest);
        System.out.println(searchResponse);

    }finally{
        HighLevelClient.close();
    }
}
 
Example 13
Source Project: james-project   Source File: ElasticSearchIndexerTest.java    License: Apache License 2.0 6 votes vote down vote up
@Test
void deleteMessage() {
    DocumentId documentId = DocumentId.fromString("1:2");
    String content = "{\"message\": \"trying out Elasticsearch\"}";

    testee.index(documentId, content, useDocumentId(documentId)).block();
    elasticSearch.awaitForElasticSearch();

    testee.delete(ImmutableList.of(documentId), useDocumentId(documentId)).block();
    elasticSearch.awaitForElasticSearch();
    
    SearchResponse searchResponse = client.search(
        new SearchRequest(INDEX_NAME.getValue())
            .source(new SearchSourceBuilder().query(QueryBuilders.matchAllQuery())),
        RequestOptions.DEFAULT)
        .block();
    assertThat(searchResponse.getHits().getTotalHits()).isEqualTo(0);
}
 
Example 14
public String selectAll(String indexs,String types,String condition){
	try {
		if(StringUtil.isEmpty(indexs))indexs="_all";
		if(xclient==null){
			init();
		}
		SearchSourceBuilder search = new SearchSourceBuilder();
		search.query(QueryBuilders.queryStringQuery(condition)); 
		search.explain(false);
		SearchRequest request = new SearchRequest();
		request.searchType(SearchType.DFS_QUERY_THEN_FETCH);
		request.source(search);
		request.indices(indexs.split(","));
		request.types(types.split(","));
		SearchResponse response = xclient.search(request);
		return response.toString();
	} catch (Exception e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
	return null;
}
 
Example 15
Source Project: summerframework   Source File: ESSearchTest.java    License: Apache License 2.0 6 votes vote down vote up
@Test
public void termQuery() throws IOException {
    queryPair.setFieldNames(new String[] {"productName"});
    queryPair.setContent("android");
    queryCondition.setQueryBuilder(QueryBuilders.termQuery(queryPair.getFieldNames()[0], queryPair.getContent()));
    List<Spu> list = elasticsearchTemplate.analyzeSearchResponse(Spu.class,
        elasticsearchTemplate.executeQuery("es_test", queryCondition, "type"));

    log.info("json string is:{}", mapper.writeValueAsString(list));
    log.info("list size is:{}", list.size());

    assertThat(list.size(), is(1));
    assertThat(list.get(0), equalTo(spu1));

    queryPair.setContent("android手机");
    queryCondition.setQueryBuilder(QueryBuilders.termQuery(queryPair.getFieldNames()[0], queryPair.getContent()));
    list = elasticsearchTemplate.analyzeSearchResponse(Spu.class,
        elasticsearchTemplate.executeQuery("es_test", queryCondition, "type"));

    log.info("json string is:{}", mapper.writeValueAsString(list));
    log.info("list size is:{}", list.size());

    assertThat(list.size(), is(0));
}
 
Example 16
@Override
public List<DetectorMapping> findLastUpdated(int timeInSeconds) {
    val sourceBuilder = new SearchSourceBuilder();
    val boolQuery = QueryBuilders.boolQuery();
    val fromTime = System.currentTimeMillis() - timeInSeconds * 1000;
    boolQuery.must(new RangeQueryBuilder(LAST_MOD_TIME_KEYWORD).gt(fromTime));
    sourceBuilder.query(boolQuery);
    //FIXME setting default result set size to 500.
    sourceBuilder.size(500);
    val searchRequest =
            new SearchRequest()
                    .source(sourceBuilder)
                    .indices(elasticSearchProperties.getIndexName())
                    .types(elasticSearchProperties.getDocType());
    return getDetectorMappings(searchRequest);
}
 
Example 17
Source Project: vertexium   Source File: ElasticsearchSearchVertexQuery.java    License: Apache License 2.0 6 votes vote down vote up
private QueryBuilder getEdgeFilter() {
    switch (direction) {
        case BOTH:
            QueryBuilder inVertexIdFilter = getDirectionInEdgeFilter();
            QueryBuilder outVertexIdFilter = getDirectionOutEdgeFilter();
            return QueryBuilders.boolQuery()
                .should(inVertexIdFilter)
                .should(outVertexIdFilter)
                .minimumShouldMatch(1);
        case OUT:
            return getDirectionOutEdgeFilter();
        case IN:
            return getDirectionInEdgeFilter();
        default:
            throw new VertexiumException("unexpected direction: " + direction);
    }
}
 
Example 18
Source Project: summerframework   Source File: ESSearchTest.java    License: Apache License 2.0 6 votes vote down vote up
@Test
public void rangeQuery() throws IOException {
    queryPair.setFieldNames(new String[] {"productName"});
    QueryBuilder queryBuilder = QueryBuilders.rangeQuery(queryPair.getFieldNames()[0]).from("android").to("服装")
        .includeLower(true).includeUpper(true);
    queryCondition.setQueryBuilder(queryBuilder);

    List<Spu> list = elasticsearchTemplate.analyzeSearchResponse(Spu.class,
        elasticsearchTemplate.executeQuery("es_test", queryCondition, "type"));
    log.info("json string is:{}", mapper.writeValueAsString(list));
    log.info("list size is:{}", list.size());

    assertThat(list.size(), is(3));
    assertThat(list.get(0), equalTo(spu2));
    assertThat(list.get(1), equalTo(spu1));
    assertThat(list.get(2), equalTo(spu3));
}
 
Example 19
Source Project: youkefu   Source File: EkmKnowledgeMasterRepositoryImpl.java    License: Apache License 2.0 6 votes vote down vote up
@Override
public List<EkmKnowledgeMaster> findByOrgi(String orgi) {

	BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
	BoolQueryBuilder bq = QueryBuilders.boolQuery() ; 
	bq.must(QueryBuilders.termQuery("orgi", orgi)) ;
	boolQueryBuilder.must(bq); 
	
	NativeSearchQueryBuilder searchQueryBuilder = new NativeSearchQueryBuilder().withQuery(boolQueryBuilder).withPageable(new PageRequest(0, 100000)) ;
	Page<EkmKnowledgeMaster> knowledgeList = null ;
	if(elasticsearchTemplate.indexExists(EkmKnowledgeMaster.class)){
		knowledgeList = elasticsearchTemplate.queryForPage(searchQueryBuilder.build() , EkmKnowledgeMaster.class ) ;
    }
	
	return knowledgeList.getContent();
}
 
Example 20
Source Project: elasticsearch-pool   Source File: DateRangeApiMain.java    License: Apache License 2.0 6 votes vote down vote up
public static void dateRange1() throws IOException {
        RestHighLevelClient client = HighLevelClient.getInstance();
        try{
            RangeQueryBuilder matchQueryBuilder = QueryBuilders.rangeQuery("ctm")
                    .from("2018-07-01 07:27:59.733",true)
                    .to("2018-07-01 07:30:00.000",false);
//            matchQueryBuilder.format("yyyy-MM-dd HH:mm:ss.SSS");//设置日期格式
//            matchQueryBuilder.timeZone("+08:00");//设置时区

            SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
            searchSourceBuilder.query(matchQueryBuilder);
            searchSourceBuilder.from(0);
            searchSourceBuilder.size(5);

            SearchRequest searchRequest = new SearchRequest("serverlog_20180701");//限定index
            searchRequest.types("log");//限定type
            searchRequest.source(searchSourceBuilder);

            SearchResponse searchResponse = client.search(searchRequest);
            System.out.println(searchResponse);


        }finally{
            HighLevelClient.close();
        }
    }
 
Example 21
Source Project: elasticsearch-jest-example   Source File: JestExample.java    License: MIT License 6 votes vote down vote up
/**
 * 查询全部
 * @throws Exception
 */
private static void searchAll() throws Exception {
	JestClient jestClient = JestExample.getJestClient();
	SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
	searchSourceBuilder.query(QueryBuilders.matchAllQuery());
	Search search = new Search.Builder(searchSourceBuilder.toString())
			.addIndex("article")
			.build();
	SearchResult result = jestClient.execute(search);
	System.out.println("本次查询共查到:"+result.getTotal()+"篇文章!");
	List<Hit<Article,Void>> hits = result.getHits(Article.class);
	for (Hit<Article, Void> hit : hits) {
		Article source = hit.source;
		System.out.println("标题:"+source.getTitle());
		System.out.println("内容:"+source.getContent());
		System.out.println("url:"+source.getUrl());
		System.out.println("来源:"+source.getSource());
		System.out.println("作者:"+source.getAuthor());
	}
}
 
Example 22
Source Project: occurrence   Source File: EsQueryVisitor.java    License: Apache License 2.0 6 votes vote down vote up
/**
 * handle disjunction predicate
 *
 * @param predicate disjunction predicate
 * @param queryBuilder  root query builder
 */
public void visit(DisjunctionPredicate predicate, BoolQueryBuilder queryBuilder) throws QueryBuildingException {
  Map<OccurrenceSearchParameter, List<EqualsPredicate>> equalsPredicatesReplaceableByIn = groupEquals(predicate);

  predicate.getPredicates().forEach(subPredicate -> {
    try {
      if (!isReplaceableByInPredicate(subPredicate, equalsPredicatesReplaceableByIn)) {
        BoolQueryBuilder shouldQueryBuilder = QueryBuilders.boolQuery();
        visit(subPredicate, shouldQueryBuilder);
        queryBuilder.should(shouldQueryBuilder);
      }
    } catch (QueryBuildingException ex) {
      throw new RuntimeException(ex);
    }
  });
  if (!equalsPredicatesReplaceableByIn.isEmpty()) {
    toInPredicates(equalsPredicatesReplaceableByIn)
      .forEach(ep -> queryBuilder.should().add(QueryBuilders.termsQuery(getElasticField(ep.getKey()),
                                                                        ep.getValues().stream()
                                                                          .map(v -> parseParamValue(v, ep.getKey()))
                                                                          .collect(Collectors.toList()))));
  }
}
 
Example 23
Source Project: elasticsearch-sql   Source File: QueryMaker.java    License: Apache License 2.0 6 votes vote down vote up
private void explanWhere(BoolQueryBuilder boolQuery, Where where) throws SqlParseException {

		//zhongshu-comment 暂时只遇到了该sql:select a,b,c as my_c from tbl where a = 1,会走这个分支
		if (where instanceof Condition) {
			addSubQuery(
					boolQuery,
					where,
					(QueryBuilder) make((Condition) where) //zhongshu-comment 重点方法 就是这里解析最细粒度的where条件
			);
		} else {
			/*
			zhongshu-comment select a,b,c as my_c from tbl where a = 1 or b = 2 and (c = 3 or d = 4) or e > 1
			上面这条sql中的“b = 2 and (c = 3 or d = 4)”这部分会走该分支,
			因为“b = 2 and (c = 3 or d = 4)”被封装为Where类型的对象,而不是Condition对象
			对应的具体笔记见:搜索-->es插件开发-->es-sql-->代码阅读-->如何解析where条件
			 */
			BoolQueryBuilder subQuery = QueryBuilders.boolQuery();

			//zhongshu-comment 将subQuery对象纳入到boolQuery中,即boolQuery是上一级,subQuery是下一级
			addSubQuery(boolQuery, where, subQuery);
			for (Where subWhere : where.getWheres()) {
				//zhongshu-comment 然后又将subWhere对象纳入到subQuery对象中,通过递归就能层层解析出这个Where条件了:“b = 2 and (c = 3 or d = 4)”
				explanWhere(subQuery, subWhere);
			}
		}
	}
 
Example 24
Source Project: metacat   Source File: ElasticSearchUtilImpl.java    License: Apache License 2.0 6 votes vote down vote up
/**
 * {@inheritDoc}
 */
@Override
public List<String> getTableIdsByCatalogs(final String type, final List<QualifiedName> qualifiedNames,
                                          final List<QualifiedName> excludeQualifiedNames) {
    List<String> ids = Lists.newArrayList();
    final QueryBuilder queryBuilder = QueryBuilders.boolQuery()
        .must(QueryBuilders.termsQuery("name.qualifiedName.tree", qualifiedNames))
        .must(QueryBuilders.termQuery("deleted_", false))
        .mustNot(QueryBuilders.termsQuery("name.qualifiedName.tree", excludeQualifiedNames));

    // Run the query and get the response.
    final SearchRequestBuilder request = client.prepareSearch(esIndex)
        .setTypes(type)
        .setSearchType(SearchType.QUERY_THEN_FETCH)
        .setQuery(queryBuilder)
        .setSize(Integer.MAX_VALUE)  // TODO May break if too many tables returned back, change to Scroll
        .setFetchSource(false);
    final SearchResponse response = request.execute().actionGet(esCallTimeout);
    if (response.getHits().getHits().length != 0) {
        ids = getIds(response);
    }
    return ids;
}
 
Example 25
Source Project: conductor   Source File: TestElasticSearchDAOV5.java    License: Apache License 2.0 6 votes vote down vote up
private SearchResponse search(String indexName, String structuredQuery, int start,
    int size, String freeTextQuery, String docType) throws ParserException {
    QueryBuilder queryBuilder = QueryBuilders.matchAllQuery();
    if (StringUtils.isNotEmpty(structuredQuery)) {
        Expression expression = Expression.fromString(structuredQuery);
        queryBuilder = expression.getFilterBuilder();
    }

    BoolQueryBuilder filterQuery = QueryBuilders.boolQuery().must(queryBuilder);
    QueryStringQueryBuilder stringQuery = QueryBuilders.queryStringQuery(freeTextQuery);
    BoolQueryBuilder fq = QueryBuilders.boolQuery().must(stringQuery).must(filterQuery);
    final SearchRequestBuilder srb = elasticSearchClient.prepareSearch(indexName)
        .setQuery(fq)
        .setTypes(docType)
        .storedFields("_id")
        .setFrom(start)
        .setSize(size);

    return srb.get();
}
 
Example 26
Source Project: elasticsearch-carrot2   Source File: ClusteringActionIT.java    License: Apache License 2.0 6 votes vote down vote up
public void testPropagatingAlgorithmException() {
    // The query should result in an error.
    try {
        // Out of allowed range (should cause an exception).
        Map<String,Object> attrs = new HashMap<>();
        attrs.put("ignoreWordIfInHigherDocsPercent", Double.MAX_VALUE);

        new ClusteringActionRequestBuilder(client)
            .setQueryHint("")
            .addSourceFieldMapping("title", LogicalField.TITLE)
            .addSourceFieldMapping("content", LogicalField.CONTENT)
            .setAlgorithm(STCClusteringAlgorithm.NAME)
            .addAttributes(attrs)
            .setSearchRequest(
              client.prepareSearch()
                    .setIndices(INDEX_TEST)
                    .setSize(100)
                    .setQuery(QueryBuilders.termQuery("content", "data"))
                    .setFetchSource(new String[] {"title", "content"}, null))
            .execute().actionGet();
        throw Preconditions.unreachable();
    } catch (ElasticsearchException e) {
        Assertions.assertThat(e)
            .hasMessageContaining("Clustering error:");
    }
}
 
Example 27
private QueryBuilder getLastDownloadQuery(final String value)
{
  BoolQueryBuilder neverDownloadDownloadBuilder = QueryBuilders.boolQuery();
  neverDownloadDownloadBuilder.mustNot(existsQuery(LAST_DOWNLOADED_KEY));
  neverDownloadDownloadBuilder.filter(
      rangeQuery(LAST_BLOB_UPDATED_KEY)
          .lte(format(NOW_MINUS_SECONDS, value))
  );

  RangeQueryBuilder lastDownloadRangeBuilder = rangeQuery(LAST_DOWNLOADED_KEY)
      .lte(format(NOW_MINUS_SECONDS, value));

  BoolQueryBuilder lastDownloadShouldBuilder = QueryBuilders.boolQuery();
  lastDownloadShouldBuilder.must(lastDownloadRangeBuilder);

  BoolQueryBuilder filterBuilder = QueryBuilders.boolQuery();
  filterBuilder.should(lastDownloadShouldBuilder);
  filterBuilder.should(neverDownloadDownloadBuilder);

  return filterBuilder;
}
 
Example 28
Source Project: fess   Source File: QueryHelper.java    License: Apache License 2.0 5 votes vote down vote up
protected QueryBuilder convertQuery(final QueryContext context, final Query query, final float boost) {
    if (query instanceof TermQuery) {
        return convertTermQuery(context, (TermQuery) query, boost);
    } else if (query instanceof TermRangeQuery) {
        return convertTermRangeQuery(context, (TermRangeQuery) query, boost);
    } else if (query instanceof PhraseQuery) {
        return convertPhraseQuery(context, (PhraseQuery) query, boost);
    } else if (query instanceof FuzzyQuery) {
        return convertFuzzyQuery(context, (FuzzyQuery) query, boost);
    } else if (query instanceof PrefixQuery) {
        return convertPrefixQuery(context, (PrefixQuery) query, boost);
    } else if (query instanceof WildcardQuery) {
        return convertWildcardQuery(context, (WildcardQuery) query, boost);
    } else if (query instanceof BooleanQuery) {
        final BooleanQuery booleanQuery = (BooleanQuery) query;
        return convertBooleanQuery(context, booleanQuery, boost);
    } else if (query instanceof MatchAllDocsQuery) {
        return QueryBuilders.matchAllQuery();
    } else if (query instanceof BoostQuery) {
        final BoostQuery boostQuery = (BoostQuery) query;
        return convertQuery(context, boostQuery.getQuery(), boostQuery.getBoost());
    }
    throw new InvalidQueryException(messages -> messages.addErrorsInvalidQueryUnknown(UserMessages.GLOBAL_PROPERTY_KEY), "Unknown q: "
            + query.getClass() + " => " + query);
}
 
Example 29
Source Project: albert   Source File: ChnlZhihuSearchService.java    License: MIT License 5 votes vote down vote up
private BoolQueryBuilder createFilter(ZhihuSearchParam param){
		BoolQueryBuilder builder = QueryBuilders.boolQuery();
	
		this.addTitleQuery(param.getTitle(), builder);
		//默认查已发布的数据
//		addDraftFlagFilter(param.getDraftFlag()==null?Constants.PostStatus.Approved:param.getDraftFlag(), builder);
		//      addDelFlagFilter(param.getDelFlag()==null?Constants.IS_DELFLAG_TYPE.NORMAL:param.getDelFlag(),builder);
//		addApprvlStatusFilter(param.getApprvlStatus()==null?Constants.ApprvlStatus.Approved:param.getApprvlStatus(), builder);
		
		
		return builder;
	}
 
Example 30
Source Project: vind   Source File: ElasticQueryBuilder.java    License: Apache License 2.0 5 votes vote down vote up
public static QueryBuilder buildFilterQuery(Filter filter, DocumentFactory factory, String context) {
    final BoolQueryBuilder filterQuery = QueryBuilders.boolQuery();
    // Add base doc type filter
    filterQuery.must(QueryBuilders.termQuery(FieldUtil.TYPE, factory.getType()));
    Optional.ofNullable(filter)
            .ifPresent(vindFilter -> {
                filterQuery.must(filterMapper(vindFilter, factory, context));
            });
    return filterQuery;

}