网站 建设需求网站建设商品的分类
2026/5/21 7:00:15 网站建设 项目流程
网站 建设需求,网站建设商品的分类,网站的搭建流程,上海百度推广电话第一步#xff1a;本地起一个 ES第二步#xff1a;Java 项目引入依赖第三步#xff1a;定义一个实体类第四步#xff1a;写个 Repository第五步#xff1a;试试写入和查询遇到的问题 小技巧最后说两句最近我们团队开始在新项目里用 Elasticsearch#xff08;简称 E…第一步本地起一个 ES第二步Java 项目引入依赖第三步定义一个实体类第四步写个 Repository第五步试试写入和查询遇到的问题 小技巧最后说两句最近我们团队开始在新项目里用 Elasticsearch简称 ES主要是为了做订单和用户的模糊搜索。以前用数据库 LIKE 查询慢得要死特别是数据量一大用户搜个名字都卡半天。后来老大说“试试 ES 吧搞不好真香。” 我就硬着头皮上手了结果发现——真的没那么难。这篇文章就是我踩坑后整理的“人话版”入门指南不讲原理只讲怎么快速跑起来。目标是10 分钟内让你的 Java 项目能往 ES 里写数据、也能查出来。第一步本地起一个 ES别一上来就想着集群、分片、副本。先本地跑起来再说。我用的是 Docker一行命令搞定docker run -d --name es -p9200:9200 -p9300:9300 -ediscovery.typesingle-nodedocker.elastic.co/elasticsearch/elasticsearch:8.12.0注意ES 8 默认开启安全认证对新手不太友好。如果你只是本地测试可以加个环境变量关掉-expack.security.enabledfalse跑起来后浏览器访问http://localhost:9200看到一堆 JSON 信息说明 OK 了。第二步Java 项目引入依赖我们用的是 Spring Boot所以直接加 starterdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-elasticsearch/artifactId/dependency然后在application.yml里配一下地址spring:elasticsearch:uris:http://localhost:9200如果你关了安全认证这样就行。如果开了还得配用户名密码但新手建议先关掉省事。第三步定义一个实体类假设我们要存“用户”信息比如 ID、姓名、手机号、邮箱。Document(indexNameuser)publicclassUser{IdprivateStringid;privateStringname;privateStringphone;privateStringemail;// getter / setter 省略}这里关键就两行Document(indexName user)告诉 ES这个类对应 ES 里的user索引你可以理解成“表”。Id主键ES 会用它做文档 ID。我们的经验是字段名尽量用英文小写别用下划线避免映射出问题。第四步写个 RepositorySpring Data 给我们提供了超简单的操作方式publicinterfaceUserRepositoryextendsElasticsearchRepositoryUser,String{// 按名字模糊搜ListUserfindByNameContaining(Stringname);}就这一行继承ElasticsearchRepository泛型填你的实体类和 ID 类型CRUD 方法都有了。那个findByNameContaining是 Spring Data 的命名规则意思是“名字包含 xxx”。ES 会自动转成全文检索不用写查询语句。第五步试试写入和查询写个测试方法SpringBootTestclassEsTest{AutowiredprivateUserRepositoryuserRepository;TestvoidsaveUser(){UserusernewUser();user.setId(1);user.setName(张三);user.setPhone(13800138000);user.setEmail(zhangsanexample.com);userRepository.save(user);}TestvoidsearchUser(){ListUserusersuserRepository.findByNameContaining(张);users.forEach(System.out::println);}}先跑saveUser()再跑searchUser()控制台应该能打出“张三”。我认为这比写 SQL 简单多了尤其是模糊匹配数据库要加%还可能走不到索引ES 天然支持。遇到的问题 小技巧索引没自动创建Spring Data 默认会在第一次 save 时自动建索引。但如果字段类型复杂比如嵌套对象可能需要手动建 mapping。新手先用简单字段基本没问题。中文搜不准默认的分词器对中文不友好。比如搜“张三”可能拆成“张”和“三”但如果你搜“张三丰”可能就匹配不上。我们的做法是先用默认的跑通流程等业务稳定了再单独处理中文分词比如集成 ik 分词器。别一上来就想完美容易劝退。ID 到底用啥我们一般用业务主键比如用户 ID 字符串而不是让 ES 自动生成。这样方便和数据库对齐。最后说两句ES 确实强大但新手最容易犯的错就是“想一口吃成胖子”——又是调分片又是搞高亮又是聚合分析……结果连最基础的增删改查都没跑通。在我看来先让它跑起来能用就行。等真遇到性能问题或功能瓶颈再深入优化。大部分中小项目用默认配置 简单查询已经能解决 90% 的搜索需求了。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询