當前位置: 首頁>>代碼示例>>Java>>正文


Java QueryBuilder類代碼示例

本文整理匯總了Java中org.elasticsearch.index.query.QueryBuilder的典型用法代碼示例。如果您正苦於以下問題:Java QueryBuilder類的具體用法?Java QueryBuilder怎麽用?Java QueryBuilder使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。


QueryBuilder類屬於org.elasticsearch.index.query包,在下文中一共展示了QueryBuilder類的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: randomTerminalQuery

import org.elasticsearch.index.query.QueryBuilder; //導入依賴的package包/類
private static QueryBuilder randomTerminalQuery(List<String> stringFields, List<String> numericFields, int numDocs) {
    switch (randomIntBetween(0,6)) {
        case 0:
            return randomTermQuery(stringFields, numDocs);
        case 1:
            return randomTermsQuery(stringFields, numDocs);
        case 2:
            return randomRangeQuery(numericFields, numDocs);
        case 3:
            return QueryBuilders.matchAllQuery();
        case 4:
            return randomCommonTermsQuery(stringFields, numDocs);
        case 5:
            return randomFuzzyQuery(stringFields);
        case 6:
            return randomIDsQuery();
        default:
            return randomTermQuery(stringFields, numDocs);
    }
}
 
開發者ID:justor,項目名稱:elasticsearch_my,代碼行數:21,代碼來源:RandomQueryGenerator.java

示例2: urlParamsToQueryBuilder

import org.elasticsearch.index.query.QueryBuilder; //導入依賴的package包/類
public static QueryBuilder urlParamsToQueryBuilder(RestRequest request) {
    String queryString = request.param("q");
    if (queryString == null) {
        return null;
    }
    QueryStringQueryBuilder queryBuilder = QueryBuilders.queryStringQuery(queryString);
    queryBuilder.defaultField(request.param("df"));
    queryBuilder.analyzer(request.param("analyzer"));
    queryBuilder.analyzeWildcard(request.paramAsBoolean("analyze_wildcard", false));
    queryBuilder.lenient(request.paramAsBoolean("lenient", null));
    String defaultOperator = request.param("default_operator");
    if (defaultOperator != null) {
        queryBuilder.defaultOperator(Operator.fromString(defaultOperator));
    }
    return queryBuilder;
}
 
開發者ID:justor,項目名稱:elasticsearch_my,代碼行數:17,代碼來源:RestActions.java

示例3: listTopicsByURL

import org.elasticsearch.index.query.QueryBuilder; //導入依賴的package包/類
@Override
public IResult listTopicsByURL(String url, ITicket credentials) {
	QueryBuilder qb1 = QueryBuilders.termQuery(ITQCoreOntology.RESOURCE_URL_PROPERTY, url);
	IResult result = topicMap.runQuery(qb1.toString(), 0, -1, credentials);
	environment.logDebug("TopicMapModel.listTopicsByURL+ "+result.getErrorString()+" | "+result.getResultObject());
	//TopicMapModel.getTopicByURL+  | [[email protected], [email protected]]
	List<Object> lx = (List<Object>)result.getResultObject();
	if (lx != null) {
		if (lx.size() > 0) {
			try {
				ISubjectProxy n = (SubjectProxy)(lx.get(0));
				result.setResultObject(n);
			} catch (Exception ex) {
				environment.logError(ex.getMessage(), ex);
				result.addErrorString(ex.getMessage());
				result.setResultObject(null);
			}
		} else
			result.setResultObject(null);
	}
	System.out.println("LISTTOPICSBYURL+ "+result.getErrorString()+" | "+result.getResultObject());
	return result;
}
 
開發者ID:topicquests,項目名稱:backside-servlet-ks,代碼行數:24,代碼來源:TopicMapModel.java

示例4: createConfig

import org.elasticsearch.index.query.QueryBuilder; //導入依賴的package包/類
public static LogcenterConfig createConfig(JSONObject jsonInput) throws LogConsumerException {
    String productLine = String.valueOf(jsonInput.get("productLine"));
    String appName = String.valueOf(jsonInput.get("appName"));
    QueryBuilder qb = QueryBuilders.queryStringQuery("productLine:'" + productLine + "' AND appName:'" + appName + "'");
    SearchResponse response = ElasticsearchClient.getClient()
            .prepareSearch(Constants.METADATA_INDEX)
            .setTypes(Constants.METADATA_TYPE)
            .setQuery(qb)
            .get();
    JSONObject jsonObject = JSON.parseObject(response.toString());
    JSONArray hitArray = (JSONArray) jsonObject.getJSONObject("hits").get("hits");
    if (hitArray.size() == 0) {
        throw new LogConsumerException("index does not exist,please check the configuration of the .logcenter index");
    }
    JSONObject document = (JSONObject) hitArray.get(0);
    String jsonStr = document.get("_source").toString();

    return JSONObject.parseObject(jsonStr, LogcenterConfig.class);
}
 
開發者ID:geeker-lait,項目名稱:tasfe-framework,代碼行數:20,代碼來源:LogConfigFactory.java

示例5: deleteByQuery

import org.elasticsearch.index.query.QueryBuilder; //導入依賴的package包/類
/**
 * Delete documents using a query. Check what would be deleted first with a normal search query!
 * Elasticsearch once provided a native prepareDeleteByQuery method, but this was removed
 * in later versions. Instead, there is a plugin which iterates over search results,
 * see https://www.elastic.co/guide/en/elasticsearch/plugins/current/plugins-delete-by-query.html
 * We simulate the same behaviour here without the need of that plugin.
 * 
 * @param q
 * @return delete document count
 */
public int deleteByQuery(String indexName, final QueryBuilder q) {
    Map<String, String> ids = new TreeMap<>();
    SearchResponse response = elasticsearchClient.prepareSearch(indexName).setSearchType(SearchType.QUERY_THEN_FETCH)
        .setScroll(new TimeValue(60000)).setQuery(q).setSize(100).execute().actionGet();
    while (true) {
        // accumulate the ids here, don't delete them right now to prevent an interference of the delete with the
        // scroll
        for (SearchHit hit : response.getHits().getHits()) {
            ids.put(hit.getId(), hit.getType());
        }
        response = elasticsearchClient.prepareSearchScroll(response.getScrollId()).setScroll(new TimeValue(600000))
            .execute().actionGet();
        // termination
        if (response.getHits().getHits().length == 0)
            break;
    }
    return deleteBulk(indexName, ids);
}
 
開發者ID:yacy,項目名稱:yacy_grid_mcp,代碼行數:29,代碼來源:ElasticsearchClient.java

示例6: search

import org.elasticsearch.index.query.QueryBuilder; //導入依賴的package包/類
@Override
public JsonNode search(JsonNode jsonQuery) {

    if (jsonQuery == null) {
        throw new IllegalArgumentException("JSON Query can not be null");
    }

    if (this.client == null) {
        throw new IllegalStateException("ElasticSearch client is closed");
    }

    QueryBuilder query = QueryBuilders.wrapperQuery(jsonQuery.toString());

    SearchResponse response = client.prepareSearch(indexNames.toArray(new String[indexNames.size()]))
            .setTypes(typeNames.toArray(new String[typeNames.size()]))
            .setSearchType(SearchType.DFS_QUERY_THEN_FETCH)
            .setQuery(query)
            .get();

    JsonNode result = null;
    try {
        result = mapper.readTree(response.toString());
    } catch (IOException e) {
        log.warn("Can not parse ES response '{}' as JSON. Exception: {}", response.toString(), e);
    }

    return result;
}
 
開發者ID:mapr-demos,項目名稱:mapr-music,代碼行數:29,代碼來源:ESSearchServiceBuilder.java

示例7: propertySearch

import org.elasticsearch.index.query.QueryBuilder; //導入依賴的package包/類
@Override
public Scores propertySearch(ModifiableSearchParams searchParams, ModifiableRankParams rankParams) {

    searchParams.model(BuiltInModel.PROPERTY);

    if (rankParams instanceof ModifiableIndraParams) {
        configureDistributionalParams(searchParams.getKbId(), (ModifiableIndraParams) rankParams);
    }

    QueryBuilder queryBuilder = boolQuery()
            .should(nestedQuery("hyponyms",
                    matchQuery("hyponyms.word", searchParams.getSearchTerm()), ScoreMode.Max))
            .should(nestedQuery("hypernyms",
                    matchQuery("hypernyms.word", searchParams.getSearchTerm()), ScoreMode.Max))
            .should(nestedQuery("synonyms",
                    matchQuery("synonyms.word", searchParams.getSearchTerm()), ScoreMode.Max))
            .minimumNumberShouldMatch(1);

    Searcher searcher = core.getSearcher(searchParams.getKbId());
    Scores scores = searcher.search(new ElasticQueryHolder(queryBuilder, searchParams));

    return Rankers.apply(scores, rankParams, searchParams.getSearchTerm());
}
 
開發者ID:Lambda-3,項目名稱:Stargraph,代碼行數:24,代碼來源:ElasticEntitySearcher.java

示例8: getFilters

import org.elasticsearch.index.query.QueryBuilder; //導入依賴的package包/類
@Override
protected List<QueryBuilder> getFilters(EnumSet<ElasticsearchDocumentType> elementTypes) {
    List<QueryBuilder> filters = super.getFilters(elementTypes);

    List<QueryBuilder> relatedFilters = new ArrayList<>();

    if (elementTypes.contains(ElasticsearchDocumentType.VERTEX)
            || elementTypes.contains(ElasticsearchDocumentType.VERTEX_EXTENDED_DATA)) {
        relatedFilters.add(getVertexFilter(elementTypes));
    }

    if (elementTypes.contains(ElasticsearchDocumentType.EDGE)
            || elementTypes.contains(ElasticsearchDocumentType.EDGE_EXTENDED_DATA)) {
        relatedFilters.add(getEdgeFilter());
    }

    filters.add(orFilters(relatedFilters));

    return filters;
}
 
開發者ID:mware-solutions,項目名稱:memory-graph,代碼行數:21,代碼來源:ElasticsearchSearchVertexQuery.java

示例9: testGenerateQueryBuilder

import org.elasticsearch.index.query.QueryBuilder; //導入依賴的package包/類
/**
 * Tests {@link ElasticsearchQueryBuilder#generateQueryBuilder(String)} to make sure it generates the query we expect.
 */
@Test
public void testGenerateQueryBuilder() throws Exception {
    final String fiqlFilter = "tenantName==taters,(containerName==delicious;tenantName==dinner)";

    // Generate one of our newfangled queries
    final QueryBuilder generatedBuilder = elasticsearchQueryBuilder.generateQueryBuilder(fiqlFilter);

    // Use out-of-the-box approach
    final FiqlParser<MetadataRecord> parser = new FiqlParser<>(MetadataRecord.class);
    final ElasticsearchQueryBuilderVisitor<MetadataRecord> visitor = new ElasticsearchQueryBuilderVisitor<>();

    visitor.visit(parser.parse(fiqlFilter));
    final QueryBuilder builder = visitor.getQuery();

    assertThat(generatedBuilder.toString(), is(builder.toString()));
}
 
開發者ID:8x8Cloud,項目名稱:fiql-elasticsearch,代碼行數:20,代碼來源:ElasticsearchQueryBuilderIT.java

示例10: orFilters

import org.elasticsearch.index.query.QueryBuilder; //導入依賴的package包/類
private QueryBuilder orFilters(List<QueryBuilder> filters) {
    if (filters.size() == 1) {
        return filters.get(0);
    } else {
        BoolQueryBuilder boolQuery = QueryBuilders.boolQuery();
        for (QueryBuilder filter : filters) {
            boolQuery.should(filter);
        }
        boolQuery.minimumShouldMatch(1);
        return boolQuery;
    }
}
 
開發者ID:mware-solutions,項目名稱:memory-graph,代碼行數:13,代碼來源:ElasticsearchSearchVertexQuery.java

示例11: getCount

import org.elasticsearch.index.query.QueryBuilder; //導入依賴的package包/類
@Override
public Long getCount(String appid, String type) {
	if (StringUtils.isBlank(appid)) {
		return 0L;
	}
	QueryBuilder query;
	if (!StringUtils.isBlank(type)) {
		query = termQuery(Config._TYPE, type);
	} else {
		query = matchAllQuery();
	}
	Long count = 0L;
	try {
		SearchRequestBuilder crb = client().prepareSearch(getIndexName(appid)).setSize(0).setQuery(query);
		count = crb.execute().actionGet().getHits().getTotalHits();
	} catch (Exception e) {
		Throwable cause = e.getCause();
		String msg = cause != null ? cause.getMessage() : e.getMessage();
		logger.warn("Could not count results in index '{}': {}", appid, msg);
	}
	return count;
}
 
開發者ID:Erudika,項目名稱:para-search-elasticsearch,代碼行數:23,代碼來源:ElasticSearch.java

示例12: phraseBoostTestCaseForClauses

import org.elasticsearch.index.query.QueryBuilder; //導入依賴的package包/類
private <P extends AbstractQueryBuilder<P>> void
        phraseBoostTestCaseForClauses(String highlighterType, float boost, QueryBuilder terms, P phrase) {
    Matcher<String> highlightedMatcher = Matchers.either(containsString("<em>highlight words together</em>")).or(
            containsString("<em>highlight</em> <em>words</em> <em>together</em>"));
    SearchRequestBuilder search = client().prepareSearch("test").highlighter(
            new HighlightBuilder().field("field1", 100, 1).order("score").highlighterType(highlighterType).requireFieldMatch(true));

    // Try with a bool query
    phrase.boost(boost);
    SearchResponse response = search.setQuery(boolQuery().must(terms).should(phrase)).get();
    assertHighlight(response, 0, "field1", 0, 1, highlightedMatcher);
    phrase.boost(1);
    // Try with a boosting query
    response = search.setQuery(boostingQuery(phrase, terms).boost(boost).negativeBoost(1)).get();
    assertHighlight(response, 0, "field1", 0, 1, highlightedMatcher);
    // Try with a boosting query using a negative boost
    response = search.setQuery(boostingQuery(phrase, terms).boost(1).negativeBoost(1/boost)).get();
    assertHighlight(response, 0, "field1", 0, 1, highlightedMatcher);
}
 
開發者ID:justor,項目名稱:elasticsearch_my,代碼行數:20,代碼來源:HighlighterSearchIT.java

示例13: testStoringQueries

import org.elasticsearch.index.query.QueryBuilder; //導入依賴的package包/類
public void testStoringQueries() throws Exception {
    addQueryMapping();
    QueryBuilder[] queries = new QueryBuilder[]{
            termQuery("field", "value"), matchAllQuery(), matchQuery("field", "value"), matchPhraseQuery("field", "value"),
            prefixQuery("field", "v"), wildcardQuery("field", "v*"), rangeQuery("number_field").gte(0).lte(9),
            rangeQuery("date_field").from("2015-01-01T00:00").to("2015-01-01T00:00")
    };
    // note: it important that range queries never rewrite, otherwise it will cause results to be wrong.
    // (it can't use shard data for rewriting purposes, because percolator queries run on MemoryIndex)

    for (QueryBuilder query : queries) {
        ParsedDocument doc = mapperService.documentMapper(typeName).parse("test", typeName, "1",
                XContentFactory.jsonBuilder().startObject()
                .field(fieldName, query)
                .endObject().bytes());
        BytesRef qbSource = doc.rootDoc().getFields(fieldType.queryBuilderField.name())[0].binaryValue();
        assertQueryBuilder(qbSource, query);
    }
}
 
開發者ID:justor,項目名稱:elasticsearch_my,代碼行數:20,代碼來源:PercolatorFieldMapperTests.java

示例14: testMultiplePercolatorFields

import org.elasticsearch.index.query.QueryBuilder; //導入依賴的package包/類
public void testMultiplePercolatorFields() throws Exception {
    String typeName = "another_type";
    String percolatorMapper = XContentFactory.jsonBuilder().startObject().startObject(typeName)
            .startObject("_field_names").field("enabled", false).endObject() // makes testing easier
            .startObject("properties")
                .startObject("query_field1").field("type", "percolator").endObject()
                .startObject("query_field2").field("type", "percolator").endObject()
            .endObject()
            .endObject().endObject().string();
    mapperService.merge(typeName, new CompressedXContent(percolatorMapper), MapperService.MergeReason.MAPPING_UPDATE, true);

    QueryBuilder queryBuilder = matchQuery("field", "value");
    ParsedDocument doc = mapperService.documentMapper(typeName).parse("test", typeName, "1",
            jsonBuilder().startObject()
                    .field("query_field1", queryBuilder)
                    .field("query_field2", queryBuilder)
                    .endObject().bytes()
    );
    assertThat(doc.rootDoc().getFields().size(), equalTo(14)); // also includes all other meta fields
    BytesRef queryBuilderAsBytes = doc.rootDoc().getField("query_field1.query_builder_field").binaryValue();
    assertQueryBuilder(queryBuilderAsBytes, queryBuilder);

    queryBuilderAsBytes = doc.rootDoc().getField("query_field2.query_builder_field").binaryValue();
    assertQueryBuilder(queryBuilderAsBytes, queryBuilder);
}
 
開發者ID:justor,項目名稱:elasticsearch_my,代碼行數:26,代碼來源:PercolatorFieldMapperTests.java

示例15: queryToList

import org.elasticsearch.index.query.QueryBuilder; //導入依賴的package包/類
/**
 * 
 * @param data
 * @param queryBuilder
 * @param postFilter
 */
@SuppressWarnings("rawtypes")
private void queryToList(UAVHttpMessage data, QueryBuilder queryBuilder, QueryBuilder postFilter,
        SortBuilder[] sorts) {

    SearchResponse sr = query(data, queryBuilder, postFilter, sorts);

    SearchHits shits = sr.getHits();

    List<Map<String, Object>> records = new ArrayList<Map<String, Object>>();

    for (SearchHit sh : shits) {
        Map<String, Object> record = sh.getSourceAsMap();

        if (record == null) {
            continue;
        }

        records.add(record);
    }

    data.putResponse("rs", JSONHelper.toString(records));
    // 返回總的條數
    data.putResponse("count", shits.getTotalHits() + "");
}
 
開發者ID:uavorg,項目名稱:uavstack,代碼行數:31,代碼來源:InvokeChainQueryHandler.java


注:本文中的org.elasticsearch.index.query.QueryBuilder類示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。