有一个需求是这样的,有表A,存放的是文章的所有信息,包括id,title,url,description,time等字段。每往表A中添加一篇文章时,会往lucene的index中添加进索引,但是索引中只有文章的id是stored的,其它内容都只设定unstored。这样能够保证索引表的大小。
当我输入关键字进行搜索时,我可以得到的搜索结构是类似id的一个数组。我希望通过这个id再从表中得到文章的所有信息。
求一个好的解决办法。因为我不能把搜索结果也就是文章的id数组作为一个存储过程的输入,那要保证搜索效率和lucene的index文件最小化,该怎么解决。
100分,给帮忙的兄弟!
当我输入关键字进行搜索时,我可以得到的搜索结构是类似id的一个数组。我希望通过这个id再从表中得到文章的所有信息。
求一个好的解决办法。因为我不能把搜索结果也就是文章的id数组作为一个存储过程的输入,那要保证搜索效率和lucene的index文件最小化,该怎么解决。
100分,给帮忙的兄弟!
为什么要搞一个单独的索引表呢? 直接在文章表的 id, stored 列上建立复合索引不就行了吗?
而且sql会自动维护索引, 比你单独建立表强多了啊.即使因为某些需要, 有时你只需要检索 id, stored 列的数据, 那么, sql也会根据你的索引情况, 只检索索引数据, 不会检索原始表.
所以想不明白, 楼主干嘛单独建立类似索引的表, 而且要自己来维护等.
-----------------------直接在文章表的 id, stored 列上建立复合索引
--------------
.... 就这么多了一个stored字段,然后彻到复合索引上去了...
希望得到大家的帮助
FROM 表A A,(
SELECT * FROM 你的索引表
WHERE 查询条件
)B
WHERE A.ID = B.ID AND A.STORED = B.STORED
LZ意思是不是就是输入一个ID数组,查询出符合条件的记录?create procedure query_by_id
@idarray varchar(1000) -- 查出来的数组合成,中间用 ,分开
as
select * from A where CharIndex(','+convert(varchar(10),id)+',' , ','+ @idarray+',') >0
return 0