MVC linq 相似度 匹配 排序
数据库数据:字段 Title
中国
国中
国中国
国
需求:在搜索框里面输入:国
显示出来的结果是:
1. 国
2.国中
3.国中国
在搜索框里面输入:中
显示出来的结果是:
1.中国
2.国中
3.国中国
请问下这个需求怎么实现,也就是说匹配度由高到低匹配 排序
--------------------编程问答-------------------- 先去百度下全文索引 --------------------编程问答-------------------- LINQ是独立于数据库的,数据库实现者决定怎么解析LINQ的逻辑函数展开。
LINQ To SQL和LINQ To Entity的SQL Server不支持使用全文索引。
你可以自己编写一个SQl Server函数然后加入LINQ To SQL的数据库模型。 --------------------编程问答--------------------
不是全文索引,是单独一个字段的搜索 例如字段Title --------------------编程问答-------------------- 你的需求可以不可以这么来理解:
先匹配 like '%key' or like 'key%'
最后匹配 like '%key%'
如果是这样就好办了:
var query= db.TableA.Where(t=>t.Title.StartWith("中")||t.Title.EndWith(“中”))--------------------编程问答-------------------- update:
.Union(db.TableA.Where(t=>t.Title.Contains("中")));
var query=db.TableA.Where(t=>t.Title==("中"))--------------------编程问答-------------------- http://bbs.csdn.net/topics/360200664 --------------------编程问答--------------------
.Union(db.TableA.Where(t=>t.Title.StartWith("中")||t.Title.EndWith("中")))
.Union(db.TableA.Where(t=>t.Title.Contains("中")));
开源社区有个lucene.NET可以实现 --------------------编程问答--------------------
数据库数据:
字段 Title
中国
国中
国中国
国
需求:在搜索框里面输入:国
显示出来的结果是:
1. 国
2.国中
3.国中国
在搜索框里面输入:中
显示出来的结果是:
1.中国
2.国中
3.国中国
请问下这个需求怎么实现,也就是说匹配度由高到低匹配 排序
你这里指的匹配度是由哪些组成的?比如搜索“中”得时候,“中国”和“国中”,怎么判断他们的匹配度高低?给出具体的规则。 --------------------编程问答--------------------
你的需求可以不可以这么来理解:
先匹配 like '%key' or like 'key%'
最后匹配 like '%key%'
如果是这样就好办了:
var query= db.TableA.Where(t=>t.Title.StartWith("中")||t.Title.EndWith(“中”))
.Union(db.TableA.Where(t=>t.Title.Contains("中")));
嗯 这个不错 --------------------编程问答-------------------- 盘古分词最准确
补充:.NET技术 , ASP.NET