仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 521|回复: 12
打印 上一主题 下一主题

[学习教程] JAVA网站制作之企业级搜刮使用服务器solr的TrieField局限查询剖析仓酷云

[复制链接]
小妖女 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:29:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
手机用到的是用j2me所编出来的小程序。solr从1.4版本入手下手,供应了一种字段范例TrieField(TrieLongField、TrieIntField等),用于局限查询,功能比一般的数值范例要快10倍。为何会快那末多呢?网上找不到相干材料,经由过程剖析源代码,也许懂得了其道理,给人人分享下。


  • TrieField字段设置
<fieldTypename=”tint”precisionStep=”8&Prime;omitNorms=”true”positionIncrementGap=”0&Prime;/>
个中precisionStep代表字段值分段保留的时分,截断精度的巨细。一样平常来讲,其值越小,索引巨细越年夜,查找速率越快。


  • TrieField索引
TrieField字段在lucene中是用多个field来保留的,field的几依据precisionStep决意,好比TrieIntField,precisionStep=”8&Prime;,则保留到索引中就是4个field,如图,32位的Int,每次缩进8位保留为一个field,新的field接纳char数组来保留。因而索引的巨细会比一般的IntField年夜。

<br>


  • TrieField的局限查询:
TrieField的局限查询经由过程高位局限婚配,低位边沿婚配,失掉必要查询的term,再查询这些term失掉docid来完成。如图:

<br>
查找的历程:
1、将查找的局限A~B的高低界A、B值,掏出最高8位,标志为A1、B1,到第一段找在(A1~B1)内的term,失掉必要查找的termlist1
2、持续取A、B值的最高16位,标志为A2、B2,到第二段来查在(A2~A111111111]和[B111111111,B2)局限内的Term,失掉termlist2
3、持续取A、B值的最高24位,标志为A3、B3,到第三段来查在(A3~A211111111]和[B211111111,B3)局限内的Term,失掉termlist3
4、持续取A、B值的最高24位,也即A、B值,到第四段来查找[A~A311111111]和[B311111111,B]局限内的Term,失掉termlist4
5、最初查询这些term,合并,就失掉了切合查询前提的docid了。从下面的形貌,我们能够看到,必要查询的term最多为254+255*2+255*2+256*2=1786个,传统的体例A~B个term要小的多,因而功能有很年夜的提拔。

Java到底会发战成什么样,让我们拭目以待吧,我始终坚信着java会更好。以上都是俺个人看法,欢迎大家一起交流.
因胸联盟 该用户已被删除
沙发
发表于 2015-1-21 07:48:34 | 只看该作者
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
老尸 该用户已被删除
板凳
发表于 2015-1-25 15:27:06 | 只看该作者
关于设计模式的资料,还是向大家推荐banq的网站 [url]http://www.jdon.com/[/url],他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。
乐观 该用户已被删除
地板
发表于 2015-2-2 22:35:26 来自手机 | 只看该作者
是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言
爱飞 该用户已被删除
5#
发表于 2015-2-8 17:10:41 | 只看该作者
学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。
6#
发表于 2015-2-12 02:54:35 | 只看该作者
是一种语言,用以产生「小应用程序(Applet(s))
再现理想 该用户已被删除
7#
发表于 2015-2-18 21:37:40 | 只看该作者
Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台
不帅 该用户已被删除
8#
发表于 2015-2-23 17:13:16 | 只看该作者
还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。
只想知道 该用户已被删除
9#
发表于 2015-3-1 09:16:21 | 只看该作者
你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。
海妖 该用户已被删除
10#
发表于 2015-3-10 13:04:05 | 只看该作者
是一种使网页(Web Page)产生生动活泼画面的语言
分手快乐 该用户已被删除
11#
发表于 2015-3-11 15:22:31 | 只看该作者
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
谁可相欹 该用户已被删除
12#
发表于 2015-3-18 21:57:37 | 只看该作者
Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
莫相离 该用户已被删除
13#
发表于 2015-3-26 15:51:27 | 只看该作者
关于设计模式的资料,还是向大家推荐banq的网站 [url]http://www.jdon.com/[/url],他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 17:35

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表