需要使用 Linq/subsonic 的有效方法来解决此问题
我有一个 Sentences 表,其中包含 ID 和 Sentence 列。这是一个相当大的表,+/- 100000 行。我得到了一个单词列表,我需要找到包含这些单词的句子。由此产生的句子必须是唯一的。
_session.All<Sentence>()
.Select(T => new { ID = T.ID, Sentences = T.sentence.Split(' ') })
.Where(S => S.Sentences.Intersect(Words).Count()>0)
.Select(R=>R.ID)
从这里开始,它非常简单,但这似乎效率低下。
I have a table Sentences that has an ID and Sentence column. This is a fairly large table, +- 100000 rows. I am given a list of words and I need to find the sentences that contains these words. The resultant sentences must be unique.
_session.All<Sentence>()
.Select(T => new { ID = T.ID, Sentences = T.sentence.Split(' ') })
.Where(S => S.Sentences.Intersect(Words).Count()>0)
.Select(R=>R.ID)
from here it's pretty simple but this seems inefficient.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您应该使用
.Any()
,而不是.Count()>0
。此外,您似乎并没有做任何事情来获得独特的句子,例如在末尾使用
.Distinct()
。也许是这样的:
Instead of
.Count()>0
you should use.Any()
.Also, it does not appear as though you are doing anything to get unique sentences, like use a
.Distinct()
at the end.Maybe like this: