gpt4 book ai didi

java - 如何使用 QueryStringQueryBuilder

转载 作者:太空宇宙 更新时间:2023-11-04 10:39:42 25 4
gpt4 key购买 nike

我尝试在一个非常简单的情况下使用 QueryStringQueryBuilder,但我不明白为什么我得到的结果与从 Kibana 得到的结果不同。我做错了什么?

基巴纳:

GET .../_search
{
"query": {
"query_string" : {
"query" : "\"this is a query\"",
"lenient": true,
"default_operator": "OR"
}
}
}

Java:

private Optional<QueryStringQueryBuilder> parseQuery(String query) {
if (query.equals("")) {
return Optional.empty();
}
QueryStringQueryBuilder queryBuilder = QueryBuilders.queryStringQuery(query);
queryBuilder.lenient(true);
queryBuilder.defaultOperator(Operator.OR);
return Optional.of(queryBuilder);
}

来自 kibana 的结果:totalhits = 3336。来自 Java 的结果:totalhits = 10018。

编辑:该方法调用parseQuery。输入是“这是一个查询”。

public Optional<SearchRequestBuilder> getRequestBuilderByQuery(SearchQuery query) {
SearchRequestBuilder builder = getBuilderWithMaxHits(query.getMaxHits());
builder.setFetchSource(Globals.getFIELDS(query.isIncludeStory()), new String[0]);
parseQuery(query.getQuery()).ifPresent(builder::setQuery);
return Optional.of(builder);
}

最佳答案

我不知道在这种情况下您的输入参数“query”包含什么。

但我认为您想在 QueryStringQueryBuilder 中设置 queryBuilder.queryName(String queryName)

来自 JavaDocs:

queryName(String queryName): Sets the query name for the filter that can be used when searching for matched_filters per hit.

关于java - 如何使用 QueryStringQueryBuilder,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49126352/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com