[英]Setup Lucene.Net Index
我有一个列出运动项目和用户的数据库,并具有一个联接表(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搜索体育运动,所以我为他们创建了索引并进行了名称分析。 这很好。 当我搜索“球”时,我会得到足球,棒球和篮球。 我想做的是针对特定用户,只返回他们在UserSports中没有记录的运动。 因此,如果简搜索“球”,则应该只返回足球。 我可以使用not in
或left join ... where join is null
联接在SQL中进行此操作left join ... where join is null
,可以正常工作,但是我想添加模糊逻辑来搜索Lucene.net给出的逻辑。
在Lucene.Net中索引数据的最佳方法是什么?
有很多方法可以做到这一点。
由于您永远不会进行过多的运动,因此可以像实际一样简单地查询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
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.