ldqk / Masuit.LuceneEFCore.SearchEngine

基于EntityFrameworkCore和Lucene.NET实现的全文检索搜索引擎
https://masuit.org/1437
MIT License
488 stars 117 forks source link

是否支持多表索引查询的? #4

Closed qcjxberin closed 4 years ago

qcjxberin commented 4 years ago

我有两个表,同时都建了索引,可以同时查询两个表的数据吗?

ldqk commented 4 years ago

你可以将两张表的数据在创建索引的时候,类型映射为同一种类型就可以了

ldqk commented 4 years ago

比如你想同时搜索以下两张表的内容: Comments(Id,User,Content) LeaveMsg(Id,User,Content) 那么,你可以在搜索时映射为一个Msg(User,Content)的类型,这样就可以按Msg类型进行同时搜索两张表的内容了

qcjxberin commented 4 years ago

能否再具体一点的。还是有一点迷糊

qcjxberin commented 4 years ago

最好能有一点代码

ldqk commented 4 years ago

使用非泛型的搜索方法,像这样:

var result=SearchEngine.ScoredSearch(new SearchOptions("会声会影", 1, 10, "Content,Title,User"))

然后再把搜索结果映射成最终的类型就好了

qcjxberin commented 4 years ago

这个方法可以获取到数据,但另外有一个问题就是返回的数据里没有关于是属于某表的字段

ldqk commented 4 years ago

被检索的字段需要打LuceneIndex标记才行的哦

qcjxberin commented 4 years ago

目前有搜索到的,我的意思是返回的数据是属于哪个表的。这样才方便转化为对应的实体对象

ldqk commented 4 years ago

有的啊你直接调用GetType方法就知道是什么类型了啊

qcjxberin commented 4 years ago

可以了,感谢。你这个组件真不错。