【问题标题】:Fuzzy search in Azure SQL ServerAzure SQL Server 中的模糊搜索
【发布时间】:2019-03-15 13:10:46
【问题描述】:

在我工作的项目中,我们有必要使用某种模糊搜索来填充自动完成字段。这个自动完成字段必须显示一些信息作为用户在里面输入。

我正在使用 Azure SQL 数据库,但我发现无法使用 Master Data Services。 (https://docs.microsoft.com/en-us/sql/master-data-services/master-data-services-installation-and-configuration?view=sql-server-2017)

我已经在 Google 上搜索了一些解决方案,并找到了与 Levenstein 模糊搜索相关的内容,但我发现的实现并不适合我的场景。

我是模糊搜索的新手,请问您能否建议在 T-SQL 中实际实现模糊搜索。

【问题讨论】:

  • some kind of fuzzy search 您想要的搜索类型非常重要。前缀搜索本质上是一个可以利用索引的LIKE 'prefix%'。在字符串中的任何地方搜索都不能使用任何索引。使用编辑距离(例如 Levenshtein 算法)对于 自动更正 搜索很有用。 SQL Server 在这些情况下无能为力
  • 如果要进行前缀搜索,只需使用LIKE 'prefix%'。在其他情况下,最好使用搜索引擎,例如 Elasticsearch 或托管的 Azure 搜索服务。

标签: tsql azure-sql-database fuzzy-search


【解决方案1】:

您可以使用 this 文档获取有关如何使用 Azure 搜索索引器连接到 Azure SQL 数据库内容并为其编制索引的分步说明。

之后,您可以使用 Azure 搜索 API 执行模糊搜索。

https://{yourSite}.search.windows.net/indexes/{yourIndex}/docs?search={fieldToSearch}:{lookupValue}~&queryType=Full?api-version=2015-02-28&suggesterName=default&queryType=full&search=California~

您需要在要执行模糊搜索的字符/单词之后指定 querytype=full 和波浪号。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-20
    • 2019-01-11
    • 2014-12-03
    • 2018-02-12
    • 1970-01-01
    • 1970-01-01
    • 2019-08-04
    相关资源
    最近更新 更多