Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Elasticsearch筛选器结果忽略搜索关键字_Java_Spring_Spring Boot_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch - Fatal编程技术网 elasticsearch,Java,Spring,Spring Boot,elasticsearch" /> elasticsearch,Java,Spring,Spring Boot,elasticsearch" />

Java Elasticsearch筛选器结果忽略搜索关键字

Java Elasticsearch筛选器结果忽略搜索关键字,java,spring,spring-boot,elasticsearch,Java,Spring,Spring Boot,elasticsearch,我得到了良好的结果与正常的搜索查询 SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder(); BoolQueryBuilder queryBuilder = new BoolQueryBuilder(); String keyword = requestBody.getKeyword(); queryBuilder.should(QueryBuilders.matchQuery("fullText&

我得到了良好的结果与正常的搜索查询

SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
BoolQueryBuilder queryBuilder = new BoolQueryBuilder();

 String keyword = requestBody.getKeyword();

 queryBuilder.should(QueryBuilders.matchQuery("fullText", keyword));

 searchSourceBuilder.query(queryBuilder);
 searchSourceBuilder.from(requestBody.getPage() - 1);
 searchSourceBuilder.size(BROWSE_PAGE_DATA_LIMIT);

 searchRequest.source(searchSourceBuilder);

    try {
        return client.search(searchRequest, RequestOptions.DEFAULT);
    } catch (IOException e) {
        throw new HttpServerErrorException(HttpStatus.INTERNAL_SERVER_ERROR, "Error in ES search");
    }
但是当我添加过滤时,结果是忽略我的搜索关键字

queryBuilder.filter(QueryBuilders.termsQuery("authorId", filter.getAuthorIds()));
在这里,我试图替换solr的fq。我的方法有什么问题。

摘自

如果bool查询至少包含一个shoul子句,并且没有must或 筛选子句,默认值为1。否则,将使用默认值 是0

基本上,如果bool查询中有一个filter或/和must子句,那么应该子句将被忽略,直到min_should_match设置为合适的值

将minShouldMatch设置为1。e、 g:

queryBuilder.should(QueryBuilders.matchQuery("fullText", keyword)).minimumShouldMatch(1);