gpt4 book ai didi

c# - 将搜索添加到 linq 查询

转载 作者:行者123 更新时间:2023-11-30 18:07:32 26 4
gpt4 key购买 nike

我有一个基本的数据表,除了它包含一个 Username 列之外,它对于这个例子来说可以是完全通用的。

我想要一个简单的文本框和一个对 Username 字段执行相似性搜索的按钮。我知道我可以使用 .Contains() 方法,它会在 sql 中转换为 LIKE,但这是正确的做法吗?

其次,假设我在多对多关系中有另一个我也想搜索的项目,在本例中为 Label

Data
{
ID,
Name,
...
}

Many
{
DataID,
OtherID
}

Other
{
ID,
Label
}

我最终想找到所有带有类似于某些搜索子句的标签的数据项。我是否再次使用 .Contains?

然后我想在同一个查询中进行排序以获得用户名和标签的最佳匹配; {Username 和 Label} 的组合相似度如何排序?

编辑:LIKE 查询的结果是如何排序的?它只是基于索引,它匹配的二进制文件与不匹配的二进制文件?我想我并不是那么关心每句话的相似度分数,我或多或少只是想知道这个机制。返回 LIKE 查询似乎很容易,但我一直认为 LIKE 是一个糟糕的选择,因为它不使用数据库中的索引。这是真的吗?如果是的话,这有关系吗?

最佳答案

字符串相似度不是 SQL 能做好的事情。您最好的选择可能是找到所有具有相同前两个(或三个,如果需要)字符的匹配项,然后假设这是一个可管理的数字,使用 Levenshtein 距离或类似方法计算客户端的相似性分数(参见 http://en.wikipedia.org/wiki/Levenshtein_distance ).

或者,如果您感到勇敢,您可以尝试这样的事情! http://anastasiosyal.com/archive/2009/01/11/18.aspx

关于c# - 将搜索添加到 linq 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3895903/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com