ETJava Beta | Java    注册   登录
  • Lucene4.x 到 Lucene7.x 版本之间的差异 主要从以下几个点开始 NumericRangeQuery BooleanQuery Directory IndexWriterConfig NumericRangeQuery 数字范围查询,一般用于价格等域的查询 /** * 测试数字范围查询 * * @throws IOException 读取索引库异常 */ @Test public void testNumericRangerQuery() throws IOException { /*
    发表于 2024-04-06 23:32:52 阅读(197)
  • Lucene 代码高亮显示 代码高亮指的是将我们搜索的关键字按照给定格式进行回显,例如 红色粗体 添加依赖 org.apache.lucene lucene-highlighter 8.0.0 创建索引 package com.et.lucene04; import org.ap
    发表于 2024-04-06 23:27:56 阅读(184)
  • Lucene 查询索引 Lucene 常用查询器 介绍和基本使用 TermQuery 精准匹配 一般不推荐使用 QueryParser 查询解析器 可以实现 模糊匹配,精准匹配,多词查询时的各种组合 多词查询组合: apple~ 表示只要包含apple的就都查询出来 apple orange 表示包含apple或者orange的都查询出来 apple AND orange 表示同时包含apple和orange的才会查询出来 创建索引 // 对指定目录下的文件生成索引 public static
    发表于 2024-04-06 22:47:31 阅读(183)
  • Lucene 文档域加权 文档域加权 文档域加权是为了提高某个关键词的搜索排名,例如 为设置加权时查询到的是 Marry、John、Andy ,如果我们想让Andy在查询时排名靠前 此时就需要对其单独设置权重,这个权重的设置在文档域中进行设置的 从7.0开始已经去除在创建索引时对指定字段进行权重配置,替代的方式改为查询时使用BoostQuery对要查询的某个字段配置权重 以下案例以6.x版本演示 在创建文档域时对指定字段加权 创建索引 // 封装数据 private static String ids[]={"1","2","3","4"}; private stat
    发表于 2024-04-06 22:25:59 阅读(178)
  • Lucene 文档维护 添加文档域 // 添加文档域 private static void addDoc()throws Exception{ // 定义索引库需要存放的目录 Directory directory = FSDirectory.open(Paths.get("D://lucene02")); // 创建IndexWriter对象 使用中文分析器 IndexWriter writer = new IndexWriter(directory,new IndexWriterConfig(new SmartChineseAnalyzer()));
    发表于 2024-04-06 11:39:06 阅读(206)
  • Lucene 文档维护 每个Document对象表示一条数据,每个文档对象中需要包含一个文档域,对文档的维护就是对文档域的增删改操作 1. 文档域的介绍和使用 2. 对文档的增删改操作 文档域的介绍和使用 Field域用来封装分析器分词,每个文档表示一条数据,每个文档中都包含一个Field域对象 Field域的属性 是否分析:是否对域中内容进行分词处理,前提是我们是否要对域中内容进行查询 是否索引:将Field中分析后的词或整个Field值进行索引,只有索引才能进行搜索 例如 商品名,商品介绍 分析后进行索引,订单号,身份信息不用分析 但也要索引 这些数据都要作为查询条件 是否
    发表于 2024-04-06 11:34:52 阅读(184)
  • Lucene 多词查询 创建索引库 // 创建索引库 public static void createIndex()throws Exception{ // 1. 创建Directory对象 封装索引库所在位置 Directory directory = FSDirectory.open(Paths.get("D://lucene6")); // 2. 创建IndexWriterConfig对象 配置中文分析器SmartChineseAnalyzer IndexWriterConfig config = new In
    发表于 2024-04-05 14:58:54 阅读(198)
  • Lucene 分析器的分词效果 在创建索引时 IndexWriterConfig对象中默认使用的是标准分析器(StandardAnalyzer) 最终需要在分析器中对数据内容进行分词 1. 查看标准分析器的分析效果 使用Analyzer对象的tokenStream方法,该方法返回一个TokenStream对象,该对象包含了最终的分词结果 实现步骤: 1. 创建Analyzer对象 使用标准分析器 StandardAnalyzer 2. 调用分析器对象的tokenStream方法 获取TokenStream对象 3. 向TokenStream对象中设置一个引用 相当于结果集中
    发表于 2024-04-05 12:51:54 阅读(176)
  • Lucene中文分词器使用 标准分词器是不支持中文的,表现为 如果是英文内容 会将单词或语句进行分词 如果是中文 则会将单个的中文字作为一个分词 这样就无法满足我们的检索需求了 通常情况我们是根据关键词进行检索 而非单个的关键字 中文分词器 使用中科院提供的lucene插件 SmartChineseAnalyzer 需要添加如下依赖 org.apache.lucene lucene-analyzers-smartcn
    发表于 2024-04-04 21:49:16 阅读(178)
  • Luke工具使用 luke工具是用来查看索引库中数据相关信息,类似PLSQL等数据库连接工具 luke使用时需要注意版本匹配 (7.4之后的版本使用8.0) luke下载地址:https://github.com/DmitryKey/luke/releases 查看文档 查询索引
    发表于 2024-04-04 21:46:57 阅读(185)