摘要: 一、匹配多字段搜索 在有些情况下,我们需要把输入的关键字在多个字段中进行匹配。 例如:我们需要在“title”和“content”字段中搜索“组件刷新”这个关键字。 // 多字段查询,同时在多个字段中进行查询,查询的关键字会进行分词 String[] fields = {"title", "cont 阅读全文
posted @ 2020-10-24 19:28 喵喵扑 阅读(1110) 评论(0) 推荐(1) 编辑
摘要: 一、 获取搜索的关键字 获取用户输入的内容,假如我们要搜索文档中 title 字段包含 “组件” 这个词的记录。 二、 根据传入的字段和关键字进行组装搜索语法 TermQuery: 单字段搜索,精确查询,搜索的内容不会分词,"组件"、"刷新 " 可以查询到数据,“组件刷新” 查询不到。 new Te 阅读全文
posted @ 2020-10-24 19:27 喵喵扑 阅读(865) 评论(0) 推荐(0) 编辑
摘要: 在我们删除数据时,我们也应该同时把lucene中的数据删掉。 在lucene中删除也比较简单,我们只要调用deleteDocuments即可删除。 indexWriter.deleteDocuments(term); 附录:完整代码 @Test public void deleteIndex() { 阅读全文
posted @ 2020-10-24 19:26 喵喵扑 阅读(351) 评论(0) 推荐(0) 编辑
摘要: 在我们存储的数据更新了时,我们要把索引和文档页更新,这时我们就可以使用修改索引的方式来更新。 修改索引和创建索引一致,只需要把 writer.addDocument(document); 改成下面的即可: // 把文档根据条件更新到IndexWriter writer.updateDocument( 阅读全文
posted @ 2020-10-24 19:25 喵喵扑 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 一、指定一个存放索引的目录 这里我指定了一个绝对的位置,这个位置要能读写数据。 // lucene索引目录位置 String indexDir = "E:\\develop\\demo\\lucene-learn\\lucene-index"; File luceneIndexDirectory = 阅读全文
posted @ 2020-10-24 19:24 喵喵扑 阅读(348) 评论(0) 推荐(0) 编辑
摘要: 项目构建 项目是使用 gradle 来构建的,下面是 build.gradle,这里我们统一使用还算新的 lucene 版本 8.0.0, 主要是这个版本的 IK分词器、luke找得到,如果版本不统一的话会有很多坑,建议统一成一样的。 plugins { id 'java' } group 'cn. 阅读全文
posted @ 2020-10-24 19:20 喵喵扑 阅读(286) 评论(0) 推荐(0) 编辑
摘要: 分词 analyzers 分词比较好理解,我们可以理解为把一个句子分成一个可能的词组成的数组。 比如:“为了保证用户不受到骚扰” 这个句子可能组成的数组为["为了","保证","用户","不受","到","骚扰"],这样的操作就是分词。 市场上已有现成的分词工具类,不用我们去写这个算法。 索引 in 阅读全文
posted @ 2020-10-24 19:16 喵喵扑 阅读(100) 评论(0) 推荐(0) 编辑
摘要: 全文检索?Lucene? 阅读全文
posted @ 2020-10-24 19:15 喵喵扑 阅读(156) 评论(0) 推荐(0) 编辑
摘要: Portainer => Docker可视化管理 docker pull docker.io/portainer/portainer # 账号密码 admin 12345678 # 访问地址 IP:9000 docker run -d -p 9000:9000 --privileged=true - 阅读全文
posted @ 2020-10-24 18:58 喵喵扑 阅读(237) 评论(0) 推荐(0) 编辑
摘要: [xxx] 表示的是替换成对应的内容,比如:你的镜像ID=abc123,那么 [镜像ID] 就表示 abc123,不要保留中括号哦. # 开机启动、启动、停止 systemctl enable docker systemctl start docker systemctl stop docker # 阅读全文
posted @ 2020-10-24 18:53 喵喵扑 阅读(70) 评论(0) 推荐(0) 编辑