I have an entity named Port
with a field portName
. I wrote following Spring Data ES query method for containing
query:
List<Port> ports = portRepository.findByPortNameContaining(searchText);
It is working fine until the searchText
doesn't contain any spaces. If it does, I get the following error:
"Cannot constructQuery '*\"sample port\"*'. Use expression or multiple clauses instead."
When I try Spring Data ES search
method as:
List<Port> ports = Lists.newArrayList(portRepository.search(
queryStringQuery(searchText)
.field("portName")
));
If I have a port named Loui Kentucky
, I am only able to get results when the searchText
is exactly a complete word like Loui
or Kentucky
or Loui Kentucky
. Same happens with analyzeWildcard
:
List<Port> ports = Lists.newArrayList(portRepository.search(
boolQuery().should(queryStringQuery(searchText).analyzeWildcard(true).field("portName"))
));
I want to construct a simple containing query which can handle spaces as well. No fuzziness. Search results should appear even when I search for i K
as Loui Kentucky
contains that substring.