(搜索引擎的模糊匹配)lucene适合海量数据的模糊匹配吗?寻求“类百家姓”在lucene的实现方法?
有这样一个需求:1,在数据库中有两张表tableA和tableB。
2,tableA中保存有 百家姓(如:赵,钱,孙,李,,,(网络上流行的)痞子蔡,轻舞飞扬......)。
2,tableB中保存存在有会员信息(如:赵本山,钱学森,孙悟空,李阿牛.....等 "字样"(跟tableA有模糊关系)),
在tableB中还有其它很多详细的"个人信息"。
3,由于tableB中的信息不够完善,需要补充tableA的一些信息,(像:赵本山小时后的故事,钱家姓的由来.......),
-----现在我们需要把这些信息能合起来的就合起来,不能合起来的也要找出来,
并把它们分别保存在tableOk(找到匹配的)和 tableLose(未找到匹配的)表里去。
大概的表结构如下:(其中tableA中的Xing和tableB中的XingMing存在模糊的对应关系)
《现在的目标就是把两个表建立起关联来》
tableA:
ID Xing History
-------------------------------------
1 赵本山 本山的小时候.....
2 钱学 钱学是我国著名的.....
3 悟空 悟空一个跟斗十万......
4 轻舞飞扬 痞子蔡的小说.......
.............................
tableB:
ID XingMing Phone AGE ....
---------------------------------------------
1 中国赵本山 13800138000 50
2 我国钱学森 13800138000 90
3 神话孙悟空 13800138000 30000
4 山歌李阿牛 13800138000 70
..................................
现在我要整合成tableC:
ID XingMing Xing Phone AGE History
--------------------------------------------------------
1 赵本山 赵 13800138000 50 赵家的由来是。。
2
.....................................
像用lucene实现,有没有思路???不用分词(词典就是tableA的Xing字段)。
我们用存储过程实现了功能,但MSSQL2000执行后的效果达不到我们的需求,希望能找到更好的实现方式.
---------------------------------------------------------------------
SQL: select tableB.* , tableA.History into tableC
from tableA,tableB
where
charindex(tableB.XingMing,tableA.Xing)>0----模糊匹配建立联系
----以上是我们在数据库(存储过程)中实现的,但速度很慢,不合要求-------
---------------------------------------------------------------------
结果能实现功能,可性能不行,charindex()太耗时间了,like更不行。
请问用lucene实现的话应该怎样去做??????
问题:
1,把tableA中的”Xing“字段,保存在txt文件中,文本的一行表示一条记录(以此作为字典-Dic.txt)
这样能实现吗?有的话怎样实现?不需要用lucene的话用什么比较好?谢谢
2,遍历tableB中的所有记录(几百万),如果存在:
tableB.XingMing like ‘% Dic.txt.任一行 %’----模糊匹配成功--保存到tableOK。
用lucene是怎样实现的?给个简单例子。谢谢
--------------------编程问答-------------------- 不明白哦 --------------------编程问答-------------------- lucene对几百万条记录的查询不在话下,不过你的思维有问题,不能以数据库的模式照搬到Lucene中。 --------------------编程问答-------------------- 数据库表建立大的问题,想速度一定得使用索引.具体怎么做加我QQ798550852 --------------------编程问答--------------------
这个很容易.
补充:企业软件 , 企业信息化