我有一个数据库,其中列出了体育和用户,并有一个连接表(UserSports):
Sports Table:
ID Name
1 Running
2 Swimming
3 Football
4 Baseball
5 Basketball
Users Table:
ID Name
1 George
2 Jane
3 Alex
UsersSports
UserID SportID
1 2
3 1
2 4
2 5我想使用lucene.net搜索体育,所以我为它们创建了一个索引,并对其名称进行了分析。这很好用。当我搜索"ball“时,我得到的结果是足球、棒球、篮球。我想做的是,对于特定的用户,只返回他们在UserSports中没有记录的体育。因此,如果Jane搜索"ball“,它应该只返回Football。我可以在SQL中使用not in或left join ... where join is null来做这件事,这很好用,但我想添加Lucene.net提供的模糊逻辑搜索。
在Lucene.Net中为数据编制索引的最佳方式是什么?
发布于 2013-03-28 22:45:00
有很多方法可以做到这一点。
因为您永远不会有非常大量的体育赛事,所以您可以像实际操作一样简单地查询Lucene索引,并从它构建一个SQL查询:
SELECT *
FROM Sports
WHERE Sports.ID IN([list from lucene])
AND NOT EXISTS(
SELECT 1
FROM UsersSports
WHERE UsersSports.UserId = [current user id]
AND UserSports.SportID = Sports.ID
)https://stackoverflow.com/questions/15667606
复制相似问题