confident_f
2011-09-27 17:42 阅读 184

lucene建索引的几个问题

1.如何将几个路径下的索引合并到一个统一的路径下并且将原来的索引清除?
2.在搜索的时候term是完全匹配吗?比如我搜索“好”,这个term必须是“好”才能搜索吗?
3.现在搜索的时候要搜“铅笔”,我希望可以搜索与铅笔完全匹配的document,也要搜到与铅,和笔分别匹配的,但是“铅笔”的排在前面,这个用目前的什么分词器可以做到?排序如何实现?
4.对于同一个field里的内容,可以用不同的分词器分析两次吗?同样parsequery的时候可以parse多次吗?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

3条回答 默认 最新

  • 已采纳
    aini3456 aini3456 2011-10-10 17:25

    搜索的时候也要对用户输入进行分词,且用的分词器应该和索引的时候一样,所以你只输入“铅”是不会把铅笔搜出来的
    一般都中文分词器都不会把固定的词组分开的,像"铅笔"、"中国"都不会拆分的。有需要你可以自己实现一个分词
    模糊搜索用的是FuzzyQuery,我没用过,我想应该对效率会用影响的

    点赞 评论 复制链接分享
  • aini3456 aini3456 2011-10-10 11:01

    1。IndexWriter的addIndexes方法可以将一个索引目录merge到另一个索引目录里,至于删除多余的索引你可以将它的openMode设置为 OpenMode.CREATE,下次创建的后就覆盖了
    2。是否完全匹配要看分词器
    3。IK分词器可以,lucene自带简单的排序实现
    4。这个要自己写了[url]http://www.oschina.net/question/189949_28936[/url],例子可以自己去google

    点赞 评论 复制链接分享
  • aini3456 aini3456 2011-10-10 22:11

    采纳我的答案吧

    点赞 评论 复制链接分享

相关推荐