ElasticSearch RestHighLevelClient 搜索与通配符不起作用

你好哈利

我正在尝试使用 ElasticSearch 的 RestHighLevelClient API 在 Java 应用程序中使用通配符“*”进行搜索。但没有得到任何匹配。

指数数据:

JEAN
JEAN CHRISTOPHER
JEAN SOMETHING ELSE

使用 URL API 搜索:

http://mylocal-es-server.com/myindex/_search?q=firstName:JEAN*&pretty // 2 hits

JAVA 代码(更新):

public SearchResponse preciseSearch(PreciseSearchRequest req) throws IOException {
    // convert my req to org.elasticsearch.action.search.SearchRequest:
    SearchRequest searchReq = createSearchRequest(req);
    // print searchReq (see below)
    return restHighLevelClient.search(searchReq, RequestOptions.DEFAULT); // returns 0 hit
}

打印搜索请求:

{"from":0,"size":1000,"query":{"query":"(firstName:(\"JEAN*\"))","fields:[],"type":"best_fields","default_operator":"or","max_determinzed_states":10000,"enable_position_increments":true,"fuzziness":"AUTO","fuzzy_prefix_length":0,"fuzzy_max_expansions":50,"phrase_slop":0,"escape":false,"auto_generate_synonyms_phrase_query":true,"fuzzy_transpositions":true,"boost":1.0}},"sort":[{"age":{"order":"desc"}}]}

索引映射:

"firstName" : { "type": "keyword" }

我怀疑这是由于 type = 关键字而不是文本。但是,为什么使用 URL 搜索可以正常工作呢?

任何指针表示赞赏!我是ES初学者!

谢谢

你好哈利

好的我发现了问题..

有一段代码用双引号包裹了值。双引号本身可以正常工作,但是当有通配符时,它不起作用。

我有:

"query":"(firstName:(\"JEAN*\"))"

它应该是:

"query":"(firstName:(JEAN*))"

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

与RestHighLevelClient Elasticsearch春数据

ElasticSearch 6.4:映射与RestHighLevelClient

使用Elasticsearch RestHighLevelClient聚合日期

Elasticsearch RestHighLevelClient缺少传递依赖项

ElasticSearch中的嵌套搜索不起作用?

使用ElasticSearch RestHighLevelClient仅提取选择性字段

Elasticsearch和MongoDB,部分搜索不起作用

进行搜索时Elasticsearch timout不起作用

elasticsearch搜索查询的精确匹配不起作用

Django elasticsearch DSL术语和短语搜索不起作用

使用 RestHighLevelClient 调用搜索模板 URI

Elasticsearch映射不起作用

Elasticsearch聚合不起作用

ElasticSearch查询不起作用

使用mongo-connector的部分单词搜索在Elasticsearch(elasticsearch-py)中不起作用

ElasticSearch 反向通配符搜索

通配符搜索在Kibana中不起作用

如何使用弹性搜索RestHighLevelClient在Java中编写json映射?

Spring Boot +弹性搜索:Java RestHighLevelClient拒绝了连接

使用RestHighLevelClient在基本身份验证代理后面使用ElasticSearch端点

Elasticsearch-Java RestHighLevelClient-如何使用滚动API获取所有文档

ElasticSearch - 带有 scrollAPI 的 RestHighLevelClient 抛出 `Suppressed: org.apache.http.ContentTooLongException: entity content is too long`

RestHighLevelClient不能与elasticsearch 7 BulkProcessor一起使用。应该使用哪个客户端?

Elasticsearch .net NEST-DeleteByQuery不起作用,但搜索相同的查询有效

elasticsearch query_string关键字搜索与或运算符不起作用

用于字段映射的Elasticsearch索引和搜索时间分析器不起作用

elasticsearch not_analyzed不起作用

映射Geopoint在ElasticSearch中不起作用

带日期的 Elasticsearch 查询不起作用