我们来进行一些测试,论证是否有必要采用NoSQL。
因为没有条件造成同时并发读、写,因此暂时只测试单独的读和写。
MySQL
数据量:195W(行)
表结构:
ID(自增)
P_ID(逻辑上外键于另外一个表,考虑到效率,这里我们没有做这个外键)
URL(网页的URL)
主要测试的业务逻辑:根据某个P_ID来找出所有URL
插入速度:每秒1K行左右。
没有索引时候: 10.204(s) 10.172(s) 10.078(s)
对P_ID[......]
我们来进行一些测试,论证是否有必要采用NoSQL。
因为没有条件造成同时并发读、写,因此暂时只测试单独的读和写。
MySQL
数据量:195W(行)
表结构:
ID(自增)
P_ID(逻辑上外键于另外一个表,考虑到效率,这里我们没有做这个外键)
URL(网页的URL)
主要测试的业务逻辑:根据某个P_ID来找出所有URL
插入速度:每秒1K行左右。
没有索引时候: 10.204(s) 10.172(s) 10.078(s)
对P_ID[......]
deb软件包命名规则:
Ubuntu软件包命名遵循下列约定: <1>_<2>-<3>_<4>.deb
* <1>软件包名称(Package Name):
* <2>版本(Version Number):
* <3>修订号(Build Number):
* <4>平台(Architecture):
o i386
o all: 平台无关. 即适用于所有平台.[......]
5.1 Filed的Cache
有时,存在这样的需求:快速的访问每个Document的Field,但是Lucene只是做了反向索引,因此这种正向索引非常耗时。
Stored fields是一种解决方法,但是也很慢,特别当量大的时候,占用很多内存。
Field的Cache能很好地解决这个问题。
要求
Document必须只有一个Token!
用法
float[] weights = FieldCache.DEFAULT.getFloats(reader, “[......]
http://www.coder4.com/tools_ip_32int.php
可能大小端还有一些问题,还在考虑中。
例如将字符串“127.0.0.1”转化为32位无符号整数2130706433[......]
简单来说,Analysis就是把field Text转化成基本的Term的形式。
通过分词,将Text转化为Token,Token+对应的Field即为Term。
分词的处理包括:萃取、丢弃标点、移除发音、小写、移除常用单词、去除变形(去掉过去时等)等。
本章将介绍如何使用内置的分词器,以及如何根据语言、环境等特点创建自己的分词器。
4.1 使用Analysis
分词用于所有需要将Text转化成Term的场合,在Lucene中主要有两个:
1、Index(索引)[......]