【发布时间】:2021-03-04 06:30:51
【问题描述】:
我正在使用matchQuery 在 Java 中查询 Elasticsearch。以下是我的查询:
sourceBuilder.query(QueryBuilders.matchQuery("TransactionId_s","BulkRunTest.20Nov20201446.00"));
字段TransactionId_s 不是keyword。我期待 matchQuery 匹配我给出的确切字符串并返回结果。 Elasticsearch 中不应该有 TransactionId_s 为 BulkRunTest.20Nov20201446.00 的文档。但我得到了一些结果,他们有TransactionId_s,如下所示:
"TransactionId_s" : "BulkRunTest.17Sep20201222.00"
"TransactionId_s" : "BulkRunTest.22Sep20201450.00"
"TransactionId_s" : "BulkRunTest.20Sep20201250.00"
当我尝试使用 termQuery 而不是 matchQuery 时,我得到 0 个结果,这是预期的结果。我认为matchQuery 可以让我在任何字段中查询给定值,而不必担心标记化。我错了吗?我该如何解决我看到的问题?
任何帮助将不胜感激。谢谢。
【问题讨论】:
标签: java elasticsearch aws-elasticsearch elasticsearch-java-api elasticsearch-7