首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络技术 > 网络基础 >

lucene不能模糊匹配的有关问题

2012-02-19 
lucene不能模糊匹配的问题我有一个字段数据如:08g118,08g119-1,我要求输入这个数据的任何一部分都能搜素出

lucene不能模糊匹配的问题
我有一个字段数据如:08g118,08g119-1,我要求输入这个数据的任何一部分都能搜素出来,

比如:
1、输入8g1能搜出08g118,08g119-1,
2、输入9-1能搜出08g119-1,
3、输入118能搜出08g118,
4、输入08g118能搜出08g118,

但是现在死活实现不了,用这样的方式只能全部匹配,也就是满足上面的第四条 :

C# code
Query products_no = QueryParser.Parse(Keyword, "products_no", analyzer);

用这样的方式只能匹配上面的第3条:
C# code
Query products_no = new WildcardQuery(new Term("products_no", "*"+Keyword+"*")); // 通配符

两者都用也不行,请问怎么实现任意的模糊匹配,或者怎么查看lucene生成的倒排索引,因为我的lucene生成索引时没有用到分词,只是在查询的时候分词了,这一点一时还没想明白。请指教!





[解决办法]
晕,索引不分词你搜了有用吗?索引和搜索的分词算法还必须一样,不然效果也不好
[解决办法]
你索引的时候是用的StandardAnalyzer还是?把索引部分代码也贴出来
[解决办法]
采用lucene很难解决,唯一的办法是要把词法分析器,token改成一个字(一个字母或者一个汉字)的形式进行输出,才能解决楼主的问题。
我们研制的DBTSearch完全解决了你所述的问题,已经实际项目做到了这一点。参考:http://www.lingjoin.com/DBTSearch.html
[解决办法]
请问楼主,你的问题解决了吗。我现在出现的问题是模糊检索的时候,检索结果集多出一些记录。你碰到过吗
[解决办法]
wlidcardquery
prefixquery
能满足部分需求。

热点排行