随笔分类 -  Lucene

摘要:【删除】 【恢复删除】 【强制删除】 【优化和合并】 【更新索引】 附: 代码: IndexUtil.java: TestIndex.java: 阅读全文
posted @ 2018-11-01 10:05 猩生柯北 阅读(1013) 评论(0) 推荐(0)
摘要:【需求】 双十一或限时购的商品需要被放在指定区域进行搜索.如果重新建立索引消耗过大,方案:重新定义一个过滤器,然后通过新过滤器制定检索条件. 【示例】 【优化自定义Filter】 阅读全文
posted @ 2018-10-31 16:37 猩生柯北 阅读(181) 评论(0) 推荐(0)
摘要:【目的】 Lucene在读取非txt文档时将无法正常建立索引.因为非txt文档一般其内容为二进制的. 通过Tika可以将非txt文档内容进行解析并提取到相关的文档内容. 【概述】 Tika是Apache公司在2008年推出一个项目,目的是为了在Lucene和其他格式的文件之间建立一个桥梁.通过Tik 阅读全文
posted @ 2018-10-31 16:29 猩生柯北 阅读(787) 评论(0) 推荐(0)
摘要:【索引建立步骤】 【创建Directory】 【创建writer】 【创建文档并添加索引】 文档和域的概念很重要 文档相当于表中的每一条记录,域相当于表中的每一个字段。 【查询索引的基本信息】 使用IndexReader进行查询。 【实践】 附: IndexUtil.java: TestIndex. 阅读全文
posted @ 2018-10-31 16:24 猩生柯北 阅读(318) 评论(0) 推荐(0)
摘要:【默认排序】 【按照索引Id排序】 【使用SortField排序】 【倒序排序】 【多域排序】 阅读全文
posted @ 2018-10-27 20:16 猩生柯北 阅读(172) 评论(0) 推荐(0)
摘要:1 /** 2 * 不使用任何过滤器 3 */ 4 @Test 5 public void test01(){ 6 util.search("corcorleoneleone",null); 7 } 1 /** 2 * 测试过滤器 3 */ 4 @Test 5 pub... 阅读全文
posted @ 2018-10-27 20:11 猩生柯北 阅读(232) 评论(0) 推荐(0)
摘要:步骤 第一步:创建类并继承自CustomScoreQuery 第二步:实现类的相应的构造函数 第三步:重写getCustomScoreProvider()方法 第四步:创建类并继承自CustomScoreProvider 第五步:实现自定义类的构造函数 第六步:重写getCustomScore()方 阅读全文
posted @ 2018-10-27 20:09 猩生柯北 阅读(293) 评论(0) 推荐(0)
摘要:步骤: 1.创建Directory (去哪里搜索?) 2.创建IndexReader (通过IndexReader来读取索引) 3.根据IndexReader 创建 IndexSearch 4.创建搜索的Query (查询字符串,和SQL语句差不多的意思) 5.根据search搜索并且返回一个名叫T 阅读全文
posted @ 2018-10-25 15:44 猩生柯北 阅读(161) 评论(0) 推荐(0)
摘要:在全文检索工具中,是由这样的三个部分组成: 1.索引部分, 2.分词部分, 3.搜索部分。 【创建索引】 步骤: 1.创建Directory(索引建立在什么地方?内存or硬盘) 2.创建IndexWriter.(通过IndexWriter来写索引) 3.创建Document对象。 4.位Docume 阅读全文
posted @ 2018-10-25 14:50 猩生柯北 阅读(175) 评论(0) 推荐(0)
摘要:Paoding:庖丁解牛分词器。已经没有更新了。 MMSeg:搜狗的词库。 MMSeg分词器的一些截图: 步骤: 1.导入包 2.创建的时候使用MMSegAnalyzer分词器 阅读全文
posted @ 2018-10-25 10:12 猩生柯北 阅读(165) 评论(0) 推荐(0)
摘要:【停用词分词器】 【中文分词器】 1) 常用分词器 Paoding :庖丁解牛 MMSeg4j :传说使用了搜狗词库。另说:使用了Paoding的词库 IK_CAnalyzer 2) 分词器的技术点 词库是否强大 算法是否优化 【同义词】 1) 分词过程 2) 示例 3) 创建同义词索引 4) 自定 阅读全文
posted @ 2018-10-23 20:15 猩生柯北 阅读(510) 评论(0) 推荐(0)
摘要:【常用分词器】 SimpleAnalyzer StopAnalyzer WhitespaceAnalyzer StandardAnalyze 【TokenStream】 she is a student ==〉TokenStream TokenStream有2个实现类。Tokenizer、Token 阅读全文
posted @ 2018-10-22 19:28 猩生柯北 阅读(395) 评论(0) 推荐(0)
摘要:【数据分页】 MySql 〉limit Oracle 〉RowNum MsSql 〉in子查询 【Lucene】 3.5前 〉再查询 3.5后 〉searchAfter() 【分页】 1) 分页的参数 每页记录数 当前页索引 2) 再查询 3) searchAgain() 获取上一页的最后一个元素 阅读全文
posted @ 2018-10-22 19:23 猩生柯北 阅读(209) 评论(0) 推荐(0)
摘要:【概述】 其他工具类使用比较方便,但不够灵活.QueryParser也实现了较多的匹配方式。 【QueryParser的应用】 阅读全文
posted @ 2018-10-22 19:15 猩生柯北 阅读(2342) 评论(0) 推荐(0)
摘要:【精确匹配】 精确匹配通过TermQuery进行实现。相当于Sql中的等值比较。 【范围匹配】 范围匹配对数字无效。相当于Sql中的bewteen查询。 【数字范围匹配】 相当于Sql中的between。 【前缀匹配】 相当于Sql中的 like '值%'。 【通配符匹配】 【多条件查询】 【短语查 阅读全文
posted @ 2018-10-22 18:35 猩生柯北 阅读(170) 评论(0) 推荐(0)
摘要:1) FSDirectory.open FSDirectory.open()会以最合适的方式来获取一个Directory对象。 2) RAMDirectory 可以将磁盘中的索引加载到内存中,访问速度快,无法持久化存储。 3) FileSwitchDirectory Directory的实现类,实现 阅读全文
posted @ 2018-10-18 14:28 猩生柯北 阅读(360) 评论(0) 推荐(0)
摘要:【数值型】 阅读全文
posted @ 2018-10-17 20:39 猩生柯北 阅读(447) 评论(0) 推荐(0)
摘要:【概述】 在数学领域,权值指加权平均数中的每个数的频数,也称为权数或权重。在搜索引擎中,权值越高的内容在排序中越靠前。 实际应用中可以通过修改权值来重新调整索引在列表中的排序位置。 【示例】 注意:读取索引时读取到的权值和索引中的权值是不同的。因为他们属于不同的doc对象。 阅读全文
posted @ 2018-10-17 20:38 猩生柯北 阅读(948) 评论(0) 推荐(0)
摘要:【实现步骤】 1.创建一个Directory对象,也就是索引库存放的位置。 2.创建一个indexReady对象,需要指定Directory对象。 3.创建一个indexsearcher对象,需要指定indexReady对象。 4.创建一个TermQuery对象,指定查询的域和查询的关键词。 5.执 阅读全文
posted @ 2018-10-17 18:27 猩生柯北 阅读(377) 评论(0) 推荐(0)
摘要:【查询索引】 查询索引也是搜索的过程。搜索就是用户输入关键字。从索引(index)中进行搜索的过程。根据关键字搜索索引,根据索引找到对应的文档,从而找到要搜索的内容(这里指磁盘上的文件) 【用户查询接口】 全文检索系统提供用户搜索的界面供用户提交搜索的关键字,搜索完成展示搜索结果。 Lucene不提 阅读全文
posted @ 2018-10-17 17:29 猩生柯北 阅读(412) 评论(0) 推荐(0)