elasticsearch - Elasticsearch -带有通配符的精确短语搜索

标签 elasticsearch spring-data spring-data-elasticsearch

我正在寻找有关通配符精确短语搜索的帮助。

QueryBuilders.multiMatchQuery("Java Se", "title", "subtitle")
    .type(MatchQueryBuilder.Type.PHRASE_PREFIX);

上面的查询,返回以下结果。

1)Java搜索
2) flex Java搜索

尾随通配符有效。

但是,当我像下面的查询一样进行搜索时,
QueryBuilders.multiMatchQuery("ava Se", "title", "subtitle")
    .type(MatchQueryBuilder.Type.PHRASE_PREFIX);

它不返回任何内容,因为没有任何内容与“ava Se”完全匹配。
我期待与上述相同的结果。

前导通配符不起作用。
反正有实现这个目标的方法吗?

谢谢,
巴斯卡

最佳答案

如果查看“Type.PHRASE_PREFIX”的javadoc,您将看到仅字符串中的最后一项用作前缀,因此在您的情况下仅使用“Se”。

我在索引中尝试了该查询,它的工作原理是:.setQuery(QueryBuilders.matchQuery("body", "(.*?)ing the").type(MatchQueryBuilder.Type.PHRASE_PREFIX))
它返回的文档包含诸如“我们正在加强建议..”,“通过使用..”之类的短语。

关于elasticsearch - Elasticsearch -带有通配符的精确短语搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29552202/

相关文章:

scala - 无法通过 Elasticsearch-hadoop 库在多个 spark 节点上的 RDD 上应用映射

java - Java中ElasticSearch中的字段搜索?

ruby-on-rails - 对ElasticSearch 5.x的条件查询(elasticsearch-rails/elasticsearch-model)

java - 如何将 "find or create"方法提取到抽象类? ( Spring 数据 Jpa)

Spring 数据存储库 java.util.NoSuchElementException

mysql - Spring MVC-在jsp中显示对象值

java - Spring Data Elasticsearch 的 ElasticsearchTemplate vs ElasticsearchRestTemplate vs ElasticsearchOperations

elasticsearch - 如何提高基于另一个领域的Elasticsearch结果?

spring-boot - Elasticsearch在启动期间引发错误

spring-data-elasticsearch - Spring data elastic search long 到 localdatetime 转换错误