Lucene 实战教程第十章使用 PerFieldAnalyzerWrapper 为不同字段指定不同分词器
herman 7年前 (2018-12-12) 3176浏览
从教程的第一篇到现在,大家可能会发现一个问题。那就是所有的 Document 文档或者 Field 字段都使用的是同一个分词器。那么有没有办法让不同的 Field 使用不同的分词器呢? 答案就是 PerFieldAnalyzerWrappe...
herman 7年前 (2018-12-12) 3176浏览
从教程的第一篇到现在,大家可能会发现一个问题。那就是所有的 Document 文档或者 Field 字段都使用的是同一个分词器。那么有没有办法让不同的 Field 使用不同的分词器呢? 答案就是 PerFieldAnalyzerWrappe...
herman 7年前 (2018-12-12) 2577浏览
在 Lucene 中,不仅 TokenFilter 我们可以自定义,Analyzer 我们也可以自定义。本文介绍两个扩展 Analyzer 的例子,分别实现扩展停用词,实现字长过滤的功能。 自定义 Analyzer 自定义 Analy...
herman 7年前 (2018-12-12) 3728浏览
当你深入骨髓的去了解一项技术,你才能获得快感!上一章,我们说过 Analyzer 分词器的主要是用来构建 TokenStreams,那么我们今天就一起通过本文来看看 Analyzer 的内部构造,TokenStream 和 TokenFilter...
herman 7年前 (2018-12-12) 2721浏览
这一章也不算是什么新的内容了,前面我已经写过两篇关于 Analyzer 的内容了。它们分别是《深入理解 Lucene 的 Analyzer》、《详解 org.apache.lucene.analysis.Analyzer 使用教程》。这篇文章,我...
herman 7年前 (2018-12-12) 4336浏览
所有的搜索基本上都存在精确匹配,包含等操作。Lucene 中同样存在这样的操作,今天我们以 IntPoint 为例,来说说 Lucene 中的精确查询。 IntPoint、LongPoint、FloatPoint、DoublePoint 这...
herman 7年前 (2018-12-11) 3462浏览
要理解 Lucene,必须要先对它的基本构成有所了解。上一章我写了 Field,有些人还是看不明白,在微信群里讨论。所以,这一章我在把 Lucene 内部的几个概念拿出来讲一讲。 如果这几个概念:索引(index)、段(Segement)、...
herman 7年前 (2018-12-11) 5323浏览
Field 有人称之为字段,也有人称之为域,看个人爱好。在 Lucene 中,Field 域非常的重要。一个文档 Document 可以包括多个 Field,Document 只是 Field 的一个承载体,Field 值即为要索引的内容,也是要...
herman 7年前 (2018-12-11) 4393浏览
接上一篇,我解释了为什么 EXPLAIN 估算 ROWS 不准确?并且解释了 ROWS 的计算原理。本文,我们在来说一下,ROWS 计算不准确,有没有替代方案? 替代方法肯定有,看标题,注意标题。接下来,我们说说 SHOW STATUS。 ...
herman 7年前 (2018-12-11) 5817浏览
今天微信群里一位网友发了一个问题:“mysql 根据时间进行过滤,查询速度特别慢,需要 30 多秒”。然后我问她,数据库中总数据量大概是多少,她告诉我 explain 执行结果中的 rows 显示有 100 多万条。我告诉...
herman 7年前 (2018-12-10) 3106浏览
我在前面介绍过,所有的搜索技术大部分都是靠索引来实现,所以索引很重要。于是我就把索引这一块单独的抽取出来作为一章来写。 通过上面这张流程图,我们也可以看出索引对于 Lucene 的重要性。 全文检索的流程分为两大部分:索引流程...
herman 7年前 (2018-12-10) 2744浏览
基于前一章的内容,我们对 Lucene 有了一个大概的了解,本文来一个 Hello World 程序!让我们从此开启 Lucene 的学习模式。 首先,我们新建一个 Maven 项目,然后在 pom.xml 中配置以下内容: <...
herman 7年前 (2018-12-10) 2891浏览
Lucene 近年来越来越火,电商项目基本上都有使用。最近我在优化一些公司内部的系统,其中在搜索模块,我打算使用 Lucene 取代原来的基于 SQL 形式的搜索。本文算是 Lucene中文教程的第一章,认识 Lucene,和它的一些核心类介绍。...
herman 7年前 (2018-12-10) 4104浏览
最近在学习和使用 Lucene,所以我想对 Lucene 的内部实现,它的一些组件等有一系列详细的理解。在上一篇的基础上《详解 org.apache.lucene.analysis.Analyzer 使用教程》我们来说说 Analyzer 的内部...
herman 7年前 (2018-12-10) 5453浏览
Analyzer 单词的意思就是分析,它是一个抽象类,在 Lucene 的 org.apache.lucene.analysis 包中。lucene-analyzers-common 包中提供了非常多的分析器。比如:StandardAnalyze...
herman 7年前 (2018-12-10) 3218浏览
前几天群里有网友问我信号量和线程池,我对信号量回答有些错误,后面群里其他网友做了更正,今天由于时间紧张,我就简单的在说一下信号量和线程池。 自从 jdk5.0 开始在 java.util.concurrent 包里提供了 Semaphore...