随笔分类 - Lucene
摘要:一、匹配多字段搜索 在有些情况下,我们需要把输入的关键字在多个字段中进行匹配。 例如:我们需要在“title”和“content”字段中搜索“组件刷新”这个关键字。 // 多字段查询,同时在多个字段中进行查询,查询的关键字会进行分词 String[] fields = {"title", "cont
阅读全文
摘要:一、 获取搜索的关键字 获取用户输入的内容,假如我们要搜索文档中 title 字段包含 “组件” 这个词的记录。 二、 根据传入的字段和关键字进行组装搜索语法 TermQuery: 单字段搜索,精确查询,搜索的内容不会分词,"组件"、"刷新 " 可以查询到数据,“组件刷新” 查询不到。 new Te
阅读全文
摘要:在我们删除数据时,我们也应该同时把lucene中的数据删掉。 在lucene中删除也比较简单,我们只要调用deleteDocuments即可删除。 indexWriter.deleteDocuments(term); 附录:完整代码 @Test public void deleteIndex() {
阅读全文
摘要:在我们存储的数据更新了时,我们要把索引和文档页更新,这时我们就可以使用修改索引的方式来更新。 修改索引和创建索引一致,只需要把 writer.addDocument(document); 改成下面的即可: // 把文档根据条件更新到IndexWriter writer.updateDocument(
阅读全文
摘要:一、指定一个存放索引的目录 这里我指定了一个绝对的位置,这个位置要能读写数据。 // lucene索引目录位置 String indexDir = "E:\\develop\\demo\\lucene-learn\\lucene-index"; File luceneIndexDirectory =
阅读全文
摘要:项目构建 项目是使用 gradle 来构建的,下面是 build.gradle,这里我们统一使用还算新的 lucene 版本 8.0.0, 主要是这个版本的 IK分词器、luke找得到,如果版本不统一的话会有很多坑,建议统一成一样的。 plugins { id 'java' } group 'cn.
阅读全文
摘要:分词 analyzers 分词比较好理解,我们可以理解为把一个句子分成一个可能的词组成的数组。 比如:“为了保证用户不受到骚扰” 这个句子可能组成的数组为["为了","保证","用户","不受","到","骚扰"],这样的操作就是分词。 市场上已有现成的分词工具类,不用我们去写这个算法。 索引 in
阅读全文

浙公网安备 33010602011771号