本月博客排行
-
第1名
龙儿筝 -
第2名
lerf -
第3名
fantaxy025025 - johnsmith9th
- zysnba
- xiangjie88
年度博客排行
-
第1名
青否云后端云 -
第2名
宏天软件 -
第3名
gashero - wy_19921005
- vipbooks
- benladeng5225
- e_e
- wallimn
- javashop
- ranbuijj
- fantaxy025025
- jickcai
- gengyun12
- zw7534313
- qepwqnp
- 解宜然
- ssydxa219
- zysnba
- sam123456gz
- sichunli_030
- tanling8334
- arpenker
- gaojingsong
- kaizi1992
- xpenxpen
- 龙儿筝
- jh108020
- wiseboyloves
- ganxueyun
- xyuma
- xiangjie88
- wangchen.ily
- Jameslyy
- luxurioust
- mengjichen
- lemonhandsome
- jbosscn
- zxq_2017
- lzyfn123
- nychen2000
- forestqqqq
- wjianwei666
- ajinn
- zhanjia
- siemens800
- Xeden
- hanbaohong
- java-007
- 喧嚣求静
- mwhgJava
最新文章列表
solr的facet源码解读(三)——facet.field之数字单值域类型
(这个使用的solr的版本是4.10)
承接上一篇文章,在对单值域的数字类型的域做facet的时候,会使用FCS方法,里面再调用的方法是NumericFacets.getCounts(searcher, base, field, offset, limit, mincount, missing, sort);所以看看这个的代码吧:
/**
* 处理单值域的数字类型的facet
* @ ...
solr的facet源码解读(二)——facet.field
facet.field比facet.query要复杂的多,参数也更多,看看代码吧,方法是:SimpleFacets.getFacetFieldCounts()
public NamedList<Object> getFacetFieldCounts() throws IOException, ...
lucene中关于正向信息的获取——FielldCache
之前写完了docValue的内容,但是如何获取docValue呢?或者将这个问题在宽泛一些,如何获取doc的正向信息,很简单,就是FieldCache,FieldCache采取了一个单利模式,他有一个实现类叫做FieldCacheImpl。所有的获取正向信息的操作都是通过这个类的getxxx方法,在这个通用的方法里面,所有的逻辑都是一样,如果一个域有docValue,则优先会的dcoValues ...
lucene中的docValue实现源码解读(十二)——总结
看完了lucene4.10.4的docValue的五种格式,做个总结吧,顺便和农历的2017说声拜拜,跨年夜,写博客,我估计是中国唯一。
一共五种格式,其中有三种是单值的,Binary,numeric,SortedDocValue,其中Numeric有三种存放格式,分别是压缩表、差值、公约数+差值,Binary可以认为就一种,SortedDocValue的存储格式稍微复杂些,他添加了获得排序的 ...
lucene中的docValue实现源码解读(十一)——SortedSet的读取
对于SetDocValue的读取很简单,因为他的写入的格式和之前的SortedDocValue和SortedNumericDocValue有很多重复的地方,所以在读取的时候也是有很多重复的地方。
先看看最终要返回的接口吧,
public abstract class SortedSetDocValues {
/** Sole constructor. (For invocation ...
lucene中的docValue实现源码解读(十)——SortedSet的写入
看看最后一种docValue,sortedSet,他有点难,如果不是之前看了四种其他的格式的话,不是很容易理解,同理,如果看懂了其他的格式,则很容易理解。先说一下SortedSet吧,它是存储的byte[],一个doc是可以有多个值的,在存储的时候,是排序的,即在索引中是可以查找到每个doc的byte[]的排序的。他的存储是综合了sortedDocValue(存储排序的单值byte[])和 ...
lucene中的docValue实现源码解读(九)——SortedNumericDocValue的读取
再看具体的读取过程之前,先看一下SortedNumericDocValue接口的功能吧,
public abstract class SortedNumericDocValues {
/** Sole constructor. (For invocation by subclass constructors, typically implicit.) */
protect ...
lucene中的docValue实现源码解读(八)——SortedNumericDocValue的写入
SortedNumericDocValue,乍一看,有好多疑问困扰着我,这种类型的存储的也是排序的吗?是不是可以通过docid获得其排序?是不是和SortedBinaryDocValue一样也是 ...
wsm-lucene 一个简单的Lucene工具类
代码地址: https://gitee.com/shaojiepeng/wsm-lucene
wsm-lucene
一个简单的Lucene工具类,通过注释的方式来配置构建索引的字段。提供新建索引、查找、删除、更新方法,支持分页。
所需jar包
lucene-core:2.4.0
lucene-analyzers:2.4.1
commons-logging:1.2
背景
以 ...
lucene中的docValue实现源码解读(七)——SortedDocValue的读取
之前的一个博客中写了sortedDocValue的写入,这次看看再使用sortedDocValue的时候是如何读取的。读取的方法还是掌握在Lucene410DocValuesProducer中,方法是public SortedDocValues getSorted(FieldInfo field),我们先看一下这个方法返回的对象SortedDocValue吧,在这个类的源码中可以发现这个类是继承 ...
lucene中的docValue实现源码解读(五)——BinaryDocValue的读取
BinaryDocValue的读取和NumericDocValue的读取的原理是差不多的,都是在打开一个新的段时,先读取meta文件,也就是 索引文件,读取到内存,然后保存起来,再用刀某个doc的docValue的时候再去读data文件。看下读取meta文件的代码吧,是在Lucene410DocValuesProducer.readBinaryEntry(IndexInput)中:
stati ...
lucene中的docValue实现源码解读(三)——NumericDocValue的读取
对lucene的docValue的读取是在Lucene410DocValuesProducer中,我们看下他的构造方法,其中类的代码我也复制了一些有用的
class Lucene410DocValuesProducer extends DocValuesProducer implements Closeable {
/** 适用于numericDocValue的docValue,key是域 ...
lucene中的docValue实现源码解读(二)——NumericDocValue的写入
各种类型的docValue的写入是在添加索引的时候,在org.apache.lucene.index.DefaultIndexingChain.indexDocValue(PerField, DocValuesType, IndexableField)方法里面,会有五种类型的docValue,会分别调用不同的DocValueWriter来实现,这篇介绍数字类型的docValue,他是一个很简单、 ...
solr(lucene)的reRank的核心实现源码解读
换公司了,公司的solr使用的是4.10,使用了ReRankQuery,我自己看了下源码。
先介绍一下solr的reRank,他的意思是进行两轮查找,第一轮对所有的doc进行查找,指定要查找多少个doc,第二轮是在第一轮中查找到的所有的doc中在进行一遍查找,使用一个不同的查询逻辑(也就是另一个query),重新打分,可以指定两次得分的最终处理的策略,最后返回需要查找的结果。说白了,他就 ...
依赖Lucene的电话号码查询优化
某天的生产环境服务器突然报告有cpu load超负荷的报警,然后赶紧查看查询日志,发现里里面有大量类似这样的查询:
{q=(customer_mobile:/[0-9]{7}7785/+OR+code:7785)&distrib=false&_stateVer_=search4card:1494&start=0&fentityid:123456&row ...
多语言版基础管理系统展示[es6版]-简单整合spring+lucene+hadoop
1.整合基于[多语言版基础管理系统展示[es6版] ]
2.整合原想法基于[hadoop+lucene+web 综合小demo]
3.网上各种参考
4.最新消息请关注[我的空间]
5.新增入门配置篇: 多语言版基础管理系统展示[es6版]-入门配置篇
效果如下图:
使用Lucene和IKAnalyzer做简单的字符串分词
import java.io.IOException;
import java.io.StringReader;
import org.wltea.analyzer.core.IKSegmenter;
import org.wltea.analyzer.core.Lexeme;
public class LucenceTest {
public ...
使用Lucene和IKAnalyzer做字符串分词的实例
// 添加搜索记录
@Transactional
private void addSearchLog(String content) throws IOException {
if(!StringUtils.isEmpty(content)){
// 分词
StringReader sr = ...