Spring Data Elasticsearch包含带空格的查询

时间:2017-06-02 10:45:24

标签: java elasticsearch spring-data-elasticsearch

我有一个名为Port的实体,其字段为portName。我为containing查询编写了以下Spring Data ES查询方法:

List<Port> ports = portRepository.findByPortNameContaining(searchText);

searchText不包含任何空格之前,它正常工作。如果是,我收到以下错误:

"Cannot constructQuery '*\"sample port\"*'. Use expression or multiple clauses instead."

当我尝试使用Spring Data ES search方法时:

List<Port> ports = Lists.newArrayList(portRepository.search(
            queryStringQuery(searchText)
                    .field("portName")
    ));

如果我有一个名为Loui Kentucky的端口,当searchText完全是LouiKentucky或{{1}这样的完整字词时,我才能获得结果}}。 Loui Kentucky

也是如此
analyzeWildcard

我想构造一个简单的包含查询,它也可以处理空格。没有模糊。即使我搜索List<Port> ports = Lists.newArrayList(portRepository.search( boolQuery().should(queryStringQuery(searchText).analyzeWildcard(true).field("portName")) )); 时,搜索结果也会显示,因为i K包含该子字符串。

0 个答案:

没有答案