Lucene笔记36-Lucene运用到项目中-需求分析

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_36059561/article/details/83960940

一、需求分析

索引的目标

现在需要设计一个留言管理系统,我们需要对哪些字段建立索引呢?

  1. 留言的内容
  2. 留言的标题
  3. 留言的附件

索引的对象

索引的对象,要存放什么属性呢?

  1. messageId
  2. title
  3. summary
  4. createDate
  5. content:这里的content存放了文本内容或者附件内容

既然上面说到content既可以存放文本内容,又可以存放附件内容,那么文本内容id和附件内容id就有可能冲突,怎么解决这个冲突呢?这里的附件id就不要使用int来存储,而是使用String来存储,因为,我们可以规定x_y的形式,如果存放的是文本,那么x_y代表文本,其中x为0,y为文本id,如果存放的是附件,其中x代表文本id,y代表x下的附件id,这就巧妙的将id冲突问题解决了,而且还非常巧妙的绑定了文本和附件的关系。

搜索的业务需求

是否做实时搜索(只能做到近实时搜索)?什么时候更新索引?

完全实时搜索:只要数据库一变动,立刻执行indexWriter的commit()方法更新索引数据,不过这样的做法性能非常的低。

近实时搜索:当用户做了修改之后,先将索引保存到内存当中,在一个统一的时间,对内存中的所有索引进行统一的提交操作。

猜你喜欢

转载自blog.csdn.net/qq_36059561/article/details/83960940