首页 新闻 搜索 专区 学院

lucene.net 建立索引问题

1
悬赏园豆:20 [已解决问题] 解决于 2012-09-20 18:01

一个图书网站,表的设计如下:
1. Book表:存放图书的基本信息:ID、ISBN、Title、Price、Image、等
2. Category表:存放图书的分类信息,子类无限层次:ID、Name、ParentID
3. BookCategory表:图书的分类映射(一本书可以属于多个分类):BookID、CategoryID

功能:用户浏览或搜索父分类图书时,子分类的图书全部显示。

搜索功能使用lucene.net。

问题:lucene 的index该如何设计,如何将多个分类ID保存到索引字段中?我现在想到的办法是,将所有分类ID用逗号拼成一个字符串,搜索的时候类似sql的like。

麻烦的问题:这样的表设计在建立索引时,从数据库load数据比较麻烦,因为一本书是一个Document,而它有多个分类。

问题补充:

自己想了个办法,一本书属于多个分类,分类又是无限层次的,所以把这些分类及父分类的所有ID都取出来,每一个放到一个Field里,这样搜索时只需要查一个字段。但是来了新的问题,这些ID存储的field是未知的,搜索的时候还是得搜索所有分类field。

Uephee的主页 Uephee | 初学一级 | 园豆:13
提问于:2011-10-24 01:48
< >
分享
最佳答案
0

如果数据量不是很的话直接从数据库中查询吧

收获园豆:20
artwl | 专家六级 |园豆:16526 | 2011-10-24 18:11

数据量很大,数据库查询很慢很慢,尽管相应字段建了索引

Uephee | 园豆:13 (初学一级) | 2011-10-24 19:18

@uephee: lucene一般用在全文索引,你这里如果没有全文索引的话用lucene是不划算的,因为如果要保证结果的准备性就要经常更新索引,这个代价是很大的

如果坚持用lucene的话就用你的方法,把分类ID连接起来,你说的麻烦是什么,查询数据吗,这个就是一个连接查询,最好在数据库不忙时做

artwl | 园豆:16526 (专家六级) | 2011-10-24 19:55

@artwl: --谢谢。已经用lucene了,效果还不错。

http://www.tushuzazhi.com

Uephee | 园豆:13 (初学一级) | 2012-09-20 18:01
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册