我已经使用 Spring Data Solr 索引了一个位置数据库。我有以下字段:
<field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" />
<field name="name" type="text_ws" indexed="true" stored="true"/>
<field name="autocomplete" type="lowercase" indexed="true" stored="false"/>
我正在尝试实现自动完成功能。我的 ajax 调用由一个控制器处理,该控制器调用一个存储库:
List<POISearch> findByAutocompleteStartingWith(String autocomplete, Pageable pageable);
这适用于“California”或“Los”等搜索。但是当我尝试使用多个单词时,例如“Los Ang”,我得到了一个例外:
严重:servlet [spring-mvc] 在路径 [/xxx] 的上下文中的 Servlet.service() 引发异常 [请求处理失败;嵌套异常是 org.springframework.dao.InvalidDataAccessApiUsageException: CannotconstructQuery ' "los an" '。改用 epxression 或多个子句。] 根本原因 org.springframework.dao.InvalidDataAccessApiUsageException: CannotconstructQuery ' "los an"'。请改用表达式或多个子句。在 org.springframework.data.solr.core.query.Criteria.assertNoBlankInWildcardedQuery(Criteria.java:596) 在 org.springframework.data.solr.core.query.Criteria.contains(Criteria.java:230) 在 org.springframework .data.solr.core.query.Criteria.contains(Criteria.java:257) 在 org.springframework.data.solr.core.query.Criteria.contains(Criteria.java:244) 在 org.springframework.data.solr .repository.query.SolrQueryCreator.from(SolrQueryCreator.java:112) 在 org.springframework.data.solr.repository.query.SolrQueryCreator.create(SolrQueryCreator.java:56) 在 org.springframework.data.solr.repository.query .SolrQueryCreator.create(SolrQueryCreator.java:43) 在 org.springframework.data.repository.query.parser.AbstractQueryCreator.createCriteria(AbstractQueryCreator.java:
任何想法如何解决?