越来越多,我看到搜索不仅在特定列中找到子字符串,而且似乎在所有列中搜索。例如在 Amazon 中,您可以在其中搜索“Arnold”,它会同时找到阿诺德施瓦辛格主演的电影 Running Man 和 Gund 玩具 Arnold the Snoring Pig。我不知道这种搜索的术语是什么(广泛搜索?全局搜索?),这让我很烦恼。但我真正想知道的是以快速方式完成此类搜索的正常模式是什么。
执行此操作的明显且缓慢的方法是在标题中搜索子字符串“Arnold”,在作者中搜索“Arnold”,在描述中搜索“Arnold”等。
想到的第一个快速解决方案是为用于描述产品的每个词存储一个到产品本身的映射,然后搜索该词映射。这可能很快,但对我来说似乎不是很节省空间。
可能有一百种方法可以实现这一点,其中一些甚至可能不使用数据库。但什么是常态?
最佳答案
我过去通过将项目的 XML 版本存储在表的 XML 列中,然后在该列而不是其他列中进行搜索来实现这一点。
关于sql - 搜索整个数据库记录的模式,而不是特定字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3662152/