Java 什么';在SQL Server上获取类似单词的最佳方法是什么?

Java 什么';在SQL Server上获取类似单词的最佳方法是什么?,java,sql,Java,Sql,我有一个java软件,需要在数据库中搜索类似的单词。 但是,仅使用SQL的difference或soundex函数会带来许多不必要的返回。例如: 我有文本:BANK TESTE(巴西)股份有限公司 使用上述函数(difference或soundex)返回N次,例如: 测试银行(巴西)S/A 巴西测试银行S/A XXX银行 YYYY银行 银行YYY SA 有没有更自信的方法来确保文本相似?您可以在查询中使用关键字:LIKE“%text to match%”。 文本前后的%表示文本前后可以有其他文本

我有一个java软件,需要在数据库中搜索类似的单词。 但是,仅使用SQL的difference或soundex函数会带来许多不必要的返回。例如:

我有文本:BANK TESTE(巴西)股份有限公司

使用上述函数(difference或soundex)返回N次,例如:

测试银行(巴西)S/A

巴西测试银行S/A

XXX银行

YYYY银行

银行YYY SA


有没有更自信的方法来确保文本相似?

您可以在查询中使用关键字:LIKE“%text to match%”。
文本前后的%表示文本前后可以有其他文本。如果您希望结果严格符合您的要求,请删除它们。

取决于您所说的“相似”的含义。不能使用正则表达式?使用正则表达式来比较差分函数带来的每个文本?如果此函数带来900个案例,那么处理所有这些案例将是不好的,我认为在SQL Server数据库上启用全文搜索,否则将使用Regex或
LIKE
。但是,如果您想为查询
stwck overflow
而建议“可能”类似的单词,如
stack overflow
,那么您可能需要SQL Server以外的东西。不确定您在寻找什么,但听起来好像您正试图将SQL用作搜索引擎。SQL并不是解决这个问题的好方法。更好的解决方案是使用实际的搜索引擎,如Solr或ElasticSearch。