我有一个名为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
完全是Loui
或Kentucky
或{{1}这样的完整字词时,我才能获得结果}}。 Loui Kentucky
:
analyzeWildcard
我想构造一个简单的包含查询,它也可以处理空格。没有模糊。即使我搜索List<Port> ports = Lists.newArrayList(portRepository.search(
boolQuery().should(queryStringQuery(searchText).analyzeWildcard(true).field("portName"))
));
时,搜索结果也会显示,因为i K
包含该子字符串。