elasticSearch7版本文档中文属性模糊查询不准确

这篇具有很好参考价值的文章主要介绍了elasticSearch7版本文档中文属性模糊查询不准确。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、问题:es文档中的某个属性值name的值如下所示

name":"catalog=Catalog(value=699015935012372480, displayName=/默认分组),
status=3, updaterName=admin, updateTime=2023-02-01
14:33:17)status:已发布”

通过java模糊查询的api(QueryBuilders.fuzzyQuery)查询name为“已”的时候可以查询,查询为“已发布”的时候查询不出来。

2、原因:索引中没设置分词器

ps:索引中没设置分词器
es模糊搜索不准确,java,大数据,java,开发语言,elasticsearch

ps:索引中设置分词器后
es模糊搜索不准确,java,大数据,java,开发语言,elasticsearch

3、解决方案

3.1 给索引添加分词器(删除索引后,然后重新建立索引并设置分词器,如2中图所示)
3.2 换成QueryBuilders.matchPhraseQuery()的api(中文模糊查询推荐使用此api)

ps:matchPhraseQuery() 与 matchQuery()区别
matchPhraseQuery():使用matchPhraseQuery时,不会被分词器分词,而是直接以一个短语的形式查询;
matchQuery():在执行查询时,搜索的词会被分词器分词;

4、查看某索引的信息(比如是否用到分词器),代码如下

public class GetIndex {
    // index:log的名称
    private static final Logger log = Logger.getLogger("index");

    public static void main(String[] args) throws IOException {
        // 创建客户端对象
        RestHighLevelClient client = new RestHighLevelClient(
                RestClient.builder(new HttpHost("ip", 端口, "http"))
        );

        //1、查看索引
        // 请求对象
        GetIndexRequest request = new GetIndexRequest("user");
        // 发送请求
        GetIndexResponse response = client.indices().get(request, RequestOptions.DEFAULT);
        // 响应信息
        log.info("aliases: = " + response.getAliases());  // 别名
        log.info("mappings: = " + response.getMappings());  // 映射
        log.info("settings: = " + response.getSettings());  // 设置信息
        // 关闭资源
        client.close();
    }
}

借鉴地址文章来源地址https://www.toymoban.com/news/detail-786525.html

到了这里,关于elasticSearch7版本文档中文属性模糊查询不准确的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • elasticsearch7.17.3实现对中文排序

    elasticsearch版本:7.17.3 目标:实现对类型为text字段的中文排序 如果字段中既有中文又有英文,会先把中文按字母顺序排序,再排英文 执行下面命令后,重启es即可 有下面图中内容代表安装成功 下面内容是创建了一个名为es_test的索引内容,其中包含名为fileName字段,以ik分词

    2024年01月17日
    浏览(43)
  • Elasticsearch7.8.0版本入门——Elasticsearch7.8.0版本和Kibana7.8.0版本的下载、安装(win10环境)

    1.1、官网下载地址 Elasticsearch下载地址:https://www.elastic.co/cn/downloads/past-releases#elasticsearch 1.2、下载步骤 进入下载页面,选择需要下载的【版本】,如下图: 下载对应系统环境的版本,如下图: 1.3、安装步骤( 需要jdk11及以上版本支持 ) Windows 版的 Elasticsearch 的安装很简单,解

    2024年02月16日
    浏览(46)
  • Elasticsearch7.8.0版本入门——Elasticsearch指定JDK11版本

    本地安装jdk1.8版本后,安装Elasticsearch7.8.0需要jdk11及以上版本支持 下载jdk11解压即用安装包,解压到具体磁盘目录 在系统变量中增加了一个 ES_JDK, 指向了刚刚JDK11 的目录 ,如下图: 进入elasticsearch/bin目录下,找到 elasticsearch-env 这个文件,把【JAVA_HOME】换成刚刚系统变量中配

    2024年02月12日
    浏览(47)
  • ElasticSearch 学习9 spring-boot ,elasticsearch7.16.1实现中文拼音分词搜索

    一、elasticsearch官网下载:Elasticsearch 7.16.1 | Elastic 二、拼音、ik、繁简体转换插件安装 ik分词:GitHub - medcl/elasticsearch-analysis-ik: The IK Analysis plugin integrates Lucene IK analyzer into elasticsearch, support customized dictionary. 拼音分词:GitHub - medcl/elasticsearch-analysis-pinyin: This Pinyin Analysis plugin is

    2024年01月22日
    浏览(50)
  • Elasticsearch基础篇(四):Elasticsearch7.x的官方文档学习(Set up Elasticsearch)

    You should rarely need to change Java Virtual Machine (JVM) options. If you do, the most likely change is setting the heap size. 通常情况下,您应该很少需要更改Java虚拟机(JVM)选项。如果需要更改,最常见的更改是设置堆大小。 The remainder of this document explains in detail how to set JVM options. You can set options

    2024年02月08日
    浏览(37)
  • ElasticSearch:centos7安装elasticsearch7,kibana,ik中文分词器,云服务器安装elasticsearch

    系统:centos7 elasticsearch: 7.17.16 安装目录:/usr/local 云服务器的安全组:开放 9200 和5601的端口 1、安装 2、修改es的配置文件 注意:es集群启动后,所有节点的cluster.initial_master_nodes: [\\\"node-1\\\"] 都要注释掉。 3、修改jvm.options 可能出现报错 1、配置elasticsearch.yml   错误内容 : the de

    2024年02月03日
    浏览(51)
  • ElasticSearch中文分词和模糊查询

            ElasticSearch是一个一个分布式的实时文档存储,每一个字段都可以被索引与搜索,并且能支持PB级别的结构化或者非结构化数据。早期我们应用的全局搜索是简单的SQL模糊查询,为了分担数据库压力所以用了ES,选择他的原因除了以上几点外,还有其提供的API方式简单

    2024年02月03日
    浏览(49)
  • Elasticsearch7.15.2 安装ik中文分词器后启动ES服务报错的解决办法

    下载elasticsearch ik中文分词器,在elasticsearch安装目录下的plugins文件夹下创建名为ik的文件夹,将下载的ik中文分词器解压缩到新建的ik文件夹下,再次运行 ./bin/elasticsearch启动ES服务时出现以下错误: Exception in thread \\\"main\\\" java.nio.file.NotDirectoryException: /Users/amelia/work/elasticsearch-7.1

    2024年02月12日
    浏览(57)
  • Elasticsearch7.8.0版本入门——单机部署(linux环境-centos7)

    1.1、下载地址 下载地址:https://www.elastic.co/cn/downloads/past-releases#elasticsearch 1.2、下载步骤 下载步骤如下所示: linux环境(centos7)安装JDK11步骤图解参考此博文:https://wwwxz.blog.csdn.net/article/details/128899399?spm=1001.2014.3001.5502 上传安装包到home目录下 opt目录下创建es文件夹 进入home目

    2024年02月06日
    浏览(51)
  • elasticsearch 简介、中文文档、中英对照文档 下载

    组件名称 中文-文档-下载链接 中英对照-文档-下载链接 elasticsearch-5.5.1.jar elasticsearch-5.5.1-API文档-中文版.zip elasticsearch-5.5.1-API文档-中英对照版.zip elasticsearch-6.2.3.jar elasticsearch-6.2.3-API文档-中文版.zip elasticsearch-6.2.3-API文档-中英对照版.zip elasticsearch-6.3.0.jar elasticsearch-6.3.0-API文档

    2024年02月11日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包