Lucene开发中的总结

  1、Lucene搜索结果排序和sql排序结果不一致
  系统的原因导致部分使用Lucene搜索而部分使用sql查询,但两者搜索出来的结果中文排序不相同,在使用了Locale语言设置CHINESE、SIMPLIFIED_CHINESE、CHINA等,生僻字的排序仍旧是不一样。
  2、Lucene搜索结果排序问题
  对于数据量大的索引,不要用索引中的字段排序,要用索引ID排序(INDEXORDER);两者效率相差近10倍。
  3、搜索结果按时间排序
  为了能够使索引ID倒序等同于时间倒序:在建立索引时,就要按照数据的时间顺序建立,老的数据先索引,新的数据后索引,当然这是在按照生成时间排序,如果修改时间排序,那就标识原来索引为删除再追加索引
  4、特殊字符串查询
  Lucene支持转义特殊字符,因为特殊字符是查询语法用到的。转义特殊字符我们可以使用符号“\”放于字符之前。比如我们要搜索(1+1):2,我们可以使用如下语法:
\(1\+1\)\:2

其他待续....

你可能感兴趣的:(sql,Lucene)