2015-07-03 67 views
0

我正在开发一个ASP.NET MVC EF6 Web App。 我有一个ItemInfo表,它具有 - ItemCode,Size,Description,CollectionName,Material和其他字段。现在我已经为该项目提供了用户搜索功能。我在搜索逻辑中应用多个包含。 像:在ASP.NET MVC中实现搜索EF6

var results=db.ItemInfoes.Where(i=>i.ItemCode.Contains(searchString) 
|| i.Description.Contains(searchString) || i.Size.Contains(searchString) 
|| i.Material.Contains(searchString)).ToList(); 

现在,这里有两个问题,

  1. 搜索是不是最佳的,因为如果用户输入“120毫米的铁”,应该从两个栏显示(材料和尺寸)最匹配。根据我的逻辑,它会显示错误的结果。
  2. 如何显示输入搜索字符串的预测/建议。

我读过,使分贝的全文检索,然后烧制SQL过程从MVC可以解决这个问题,我想知道是否有做这更好更简单的方法。谢谢。

回答

0

你可以做的最好的就是使用像Lucene/Elastic Search这样的搜索引擎lib /框架。它将提供建议,以及其他功能,如拼音搜索,地理空间等

入门lucene.net:

https://stackoverflow.com/a/3008330/1384539

+0

解决了我的目的。谢谢。 –