gpt4 book ai didi

java - 如何对elastic中的汉字进行全量查询

转载 作者:行者123 更新时间:2023-12-02 09:02:02 25 4
gpt4 key购买 nike

我想在弹性上进行完全匹配查询这是数据:

{
"organizationId": "ec1c691a4b43e65aebdb2ab9481",
"organizationName": "工業區"
}

如果我使用此代码

QueryBuilder QueryBuilder = QueryBuilders.termQuery("organizationName","工");

会获取到数据,但是不合理

我尝试了以下2个代码

QueryBuilder QueryBuilder = QueryBuilders.matchPhraseQuery("organizationName","工業");
QueryBuilder QueryBuilder = QueryBuilders.matchPhraseQuery("organizationName","業區");

两者都返回数据,但不完全匹配

谁能帮忙啊!谢谢

最佳答案

关于 term queries 的 ElasticSearch 文档:

Avoid using the term query for text fields.

By default, Elasticsearch changes the values of text fields as part of analysis. This can make finding exact matches for text field values difficult.

To search text field values, use the match query instead.

match query是执行全文搜索的标准查询,包括模糊匹配选项。

因此,在您的示例中,我将执行以下操作以获得完全匹配的行为

QueryBuilders.matchQuery("organizationName", "工業區")

如果只查询名称的一部分,例如“工业”或“业区”,ElasticSearch 不会返回结果。

关于java - 如何对elastic中的汉字进行全量查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60091134/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com