最近为我们系统的各个表做了一个按字段查询的功能,前台发json数据到后台,后台通过拼sql,前后加%%实现模糊匹配,实现按字段查询.结果被否了.另一个同事通过Hibernate Search做模糊匹配.现在发现两个问题很难解决:
1,发现Lucence的index和database的不同步.通过spring整合,配置文件里配置了基于event的同步,但是测试还是发现偶尔不同步的情况.不知道是配置的问题还是Hibernate Search的问题.希望有用过Hibernate Search的交流一下..
2,页面展示的字段通常是用户可以理解的字符串表示的,用户容易理解的字面量,而database通常存的是整形或者其它的值.如用户状态,界面显示的是在线,数据库可能存的是1.Lucence index的时候对1做index,搜索是用户输入的,用户搜索输入的是"在线",不能搜出结果.不知道在bean中县一个get,set字符串状态的方法,然后index这个方法是否可行,还没有测试.
总的来说,觉得Hibernate Search还是比较适合在bbs或者博客网站做文本搜索,对于企业应用和电子商务等的一致性要求比较高的场景还是不是很合适.个人观点,欢迎拍砖.