zl程序教程

lucene使用

  • lucene 7.x 分词 TokenStream的使用及源码分析

    lucene 7.x 分词 TokenStream的使用及源码分析

    大家好,又见面了,我是你们的朋友全栈君。一.使用步骤 1 //将一个字符串创建成token流,第一个参数---fiedName,是一种标志性参数,可以写空字符串,不建议用null,因为null对于IKAnalyzer会包错 2 TokenStream tokenStream = new IKAnalyzer().tokenStream("keywords",n

    日期 2023-06-12 10:48:40     
  • Lucene5学习之使用IKAnalyzer分词器

    Lucene5学习之使用IKAnalyzer分词器

       之前的示例中,使用的是默认的StandardAnalyzer分词器,不能有效的进行中文分词,下面演示下如何在Lucene5.0中使用IKAnalyzer分词器。     首先下载IKAnalyzer分词器源码,IKAnalyzer分词器源码托管在OSChina的git上。下载地址: http://git.oschina.net/wltea/IK-Analyzer-2012FF 请如图下

    日期 2023-06-12 10:48:40     
  • Lucene5学习之使用Luke查看索引

    Lucene5学习之使用Luke查看索引

      lib/lucene/lucene-analyzers-common-5.0.0.jar      lib/lucene/lucene-backward-codecs-5.0.0.jar      lib/lucene/lucene-queries-5.0.0.jar      lib/lucene/lucene-queryparser-5.0.0.jar      lib/lucen

    日期 2023-06-12 10:48:40     
  • Lucene5学习之WildcardQuery使用

    Lucene5学习之WildcardQuery使用

         WildcardQuery即通配符查询,即使用通配符来模糊查询,常见的通配符有?,*,-等等,通配符不知道怎么使用的自己Google学习下吧。照例还是先阅读官方的API文档:  特别要注意的Note后面的话,提醒我们注意,WildcardQuery查询是很慢的,因为它需要遍历很多的Term,为了避免极慢的查询速度,请不要使用以星号开头的通配符进行查询。    除了官方给的那点提醒

    日期 2023-06-12 10:48:40     
  • Lucene5学习之FuzzyQuery使用

    Lucene5学习之FuzzyQuery使用

         接着学习MultiTermQuery下的另一个Query子类FuzzyQuery,它用于模糊相似度查询,那这里说的相似度是如何判定的?用到的是Damerau-Levenshtein算法,具体这个算法的原理我也不是很清楚,只知道个大概,Levenshtein中文一般翻译为编辑距,何为编辑距?即两个字符串有一个转变成另一个所需要的最小的操作步骤,这里说的操作步骤指的是插入一个字符或修改一个字

    日期 2023-06-12 10:48:40     
  • Lucene5学习之PrefixQuery使用

    Lucene5学习之PrefixQuery使用

         继续学习Query系列的实现类,PrefixQuery即前缀查询,类似于数据库SQL里的like Java%,查询以指定前缀字符串打头的索引文档。官方API是这样解释的:  意思是这个Query是用包含指定前缀的Terms来匹配索引文档的,PrefixQuery是QueryParser根据用户的输入构建的。      这个Query很简单,没什么多说的,直接上使用示例:   

    日期 2023-06-12 10:48:40     
  • Lucene5学习之NumericRangeQuery使用

    Lucene5学习之NumericRangeQuery使用

      说到NumericRangeQuery查询,你们肯定觉得很简单,不就是数字范围查询吗?用户提供一个上限值和一个下限值,底层API里直接 min, max,真的是这样吗?其实在Lucene里只能对字符串String建立索引,那么数字怎么转成String,你肯定又会想当然的认为toString()一下就OK啦?OK,假如真的是这样的,那字符串"3" "26"问题怎么解决?OK,可以通过在数字前面加

    日期 2023-06-12 10:48:40     
  • Lucene5学习之TermRangeQuery使用

    Lucene5学习之TermRangeQuery使用

        TermRangeQuery是用于字符串范围查询的,既然涉及到范围必然需要字符串比较大小,字符串比较大小其实比较的是ASC码值,即ASC码范围查询。一般对于英文来说,进行ASC码范围查询还有那么一点意义,中文汉字进行ASC码值比较没什么太大意义,所以这个TermRangeQuery了解就行,用途不太大,一般数字范围查询NumericRangeQuery用的比较多一点,比如价格,年龄,金额,

    日期 2023-06-12 10:48:40     
  • Lucene5学习之TermQuery使用

    Lucene5学习之TermQuery使用

       首先来学习用下TermQuery,这是最简单的一个Query实现,即查询索引文档中是否包含了指定的Term,Lucene官方API注释里是这样说的: extends Query   A Query that matches documents containing a term. This may be combined with other terms with a BooleanQu

    日期 2023-06-12 10:48:40     
  • Lucene5学习之使用Ansj-seg分词器

    Lucene5学习之使用Ansj-seg分词器

        这回我们来玩玩ansj分词器,由于Lucene5.0在API上有点小变化,需要修改ansj分词器源码,重新打包jar包,然后mvn install到本地仓库才能引用到项目中。至于怎么修改以及怎么打包jar,我就不过多说明了,有点麻烦,我想偷个懒,哈哈。这里我就直接把打包后的jar分享给你们,jar包注意在底下的附件里下载。     我就说说,怎么在项目中使用ansj分词器,首先pom.x

    日期 2023-06-12 10:48:40     
  • Lucene5学习之使用MMSeg4j分词器

    Lucene5学习之使用MMSeg4j分词器

         MMSeg4j是一款中文分词器,详细介绍如下:        1、mmseg4j 用 Chih-Hao Tsai 的 MMSeg 算法(http://technology.chtsai.org/mmseg/ )实现的中文分词器,并实现 lucene 的 analyzer 和 solr 的TokenizerFactory 以方便在Lucene和Solr中使用。          2、

    日期 2023-06-12 10:48:40     
  • 一步一步跟我学习lucene(18)---lucene索引时join和查询时join使用演示样例

    一步一步跟我学习lucene(18)---lucene索引时join和查询时join使用演示样例

    了解sql的朋友都知道,我们在查询的时候能够採用join查询,即对有一定关联关系的对象进行联合查询来对多维的数据进行整理。这个联合查询的方式挺方便的。跟我们现实生活中的托人找关系类似,我们想要完毕一件事。先找自己的熟人,然后通过熟人在一次找到其它,终于通过这样的手段找到想要联系到的人。有点类似于”世间万物皆有联系“的感觉。 lucene的join包提供了索引时join和查询时join的功能。

    日期 2023-06-12 10:48:40     
  • Elasticsearch压缩索引——lucene倒排索引本质是列存储+使用嵌套文档可以大幅度提高压缩率

    Elasticsearch压缩索引——lucene倒排索引本质是列存储+使用嵌套文档可以大幅度提高压缩率

    注意:由于是重复数据,词法不具有通用性!文章价值不大! 摘自:https://segmentfault.com/a/1190000002695169 Doc Values 会压缩存储重复的内容。 给定这样一个简单的 mapping mappings = { 'testdata': { '_source': {'enabled': Fa

    日期 2023-06-12 10:48:40     
  • lucene底层数据结构——FST,针对field使用列存储,delta encode压缩doc ids数组,LZ4压缩算法

    lucene底层数据结构——FST,针对field使用列存储,delta encode压缩doc ids数组,LZ4压缩算法

    参考: http://www.slideshare.net/lucenerevolution/what-is-inaluceneagrandfinal http://www.slideshare.net/jpountz/how-does-lucene-store-your-data http://www.infoq.com/cn/articles/database-timestamp-02?ut

    日期 2023-06-12 10:48:40     
  • Lucene5学习之使用MMSeg4j分词器

    Lucene5学习之使用MMSeg4j分词器

      分类:程序语言|标签:C|日期: 2015-05-01 02:00:24        MMSeg4j是一款中文分词器,详细介绍如下:        1、mmseg4j 用 Chih-Hao Tsai 的 MMSeg 算法(http://technology.chtsai.org/mmseg/ )实现

    日期 2023-06-12 10:48:40     
  • lucene 查询的使用

    lucene 查询的使用

    各种查询 方式一:使用QueryParser与查询语法。(会使用分词器) MultiFieldQueryParser 查询字符串 ------------------------> Query对象 例如: 上海 AND 天气 上海 OR 天气 上海新闻 AND site:news.163.com ... 方式二: 直接创建Qu

    日期 2023-06-12 10:48:40