我正在努力完善我的词汇量,以便更好地与我的同事们交流。我们在站点中有几个地方,我们正在讨论是否应该从字符串'running%'和字符串'%running%中的任何位置搜索字符串。
我一直把中间搜索称为“模糊”,我意识到这是不正确的,因为模糊意味着改变单词"run“、"runing”碳化硅、"runed“碳化硅的形式。
发布于 2017-10-04 18:54:26
我首先想到的是“un-萨盖博”。在索引字段中搜索特定字符串或字符串的第一部分允许您查找。如果您的搜索以通配符开始,RDBMS将必须扫描整个索引,因为满足搜索谓词的值可能出现在值集中的任何位置。
考虑看一本电话簿(如果你大到可以记住这些.)。你可以很容易地找到那些姓以“DAN”开头的人:你拇指指向D,前翻到DAs,然后丹-一些东西会在一起。如果您想找到姓包括字符串"ANIEL“的人,您必须阅读每一页(扫描表)。
发布于 2017-10-06 09:43:08
这不是你的问题,但你的例子模糊是不准确的。
'run'模糊搜索.5将包括'ran','rud',和许多其他词。SQL不支持模糊搜索,您需要其他系统,如Lucene。'run%'的通配符搜索将始终包括'runing‘和'runed',并且您可以像@所罗门·鲁茨基建议的那样区分开始和包含('%run%'包括'outrunning')。' run ' (或' run% '以包含部分匹配,例如“bla bla runing bla”和“bla runed bla bla”)。https://dba.stackexchange.com/questions/187658
复制相似问题