我在Azure中有一个sql数据库。搜索算法将或多或少地进行如下:
它将考虑Table_A中的文本字段Field_A1,其中包含不同数量的文本(nvarchar(max))。该算法将存储来自Field_A1的可调数量的单词(删除“this”,“and”,“CompanyName”等),然后通过搜索Table_B,Field_B2中的字段(也是nvarchar)从另一个表Table_B返回记录结果(max)),包含来自Field_A1的经过调整的存储单词。
如果它是一个非常聪明的算法,它还会识别Field_A1中使用这些词的模式,然后只返回Table_B中的记录,这些记录对应于找到Field_B2的相同模式。
答案 0 :(得分:1)
请考虑全文索引是否适用于此问题。
SQL Server / Azure使用基于成本的查询处理器。我们通过一种机制来扩展它,从文本数据中分离单词,找到常用单词词干,并允许以与基于成本的查询处理器的计划选择过程集成的方式对其进行查询处理。
最终,这个系统允许你主要声明你想要看到的输出数据的形状,让SQL处理找到一个合适的算法,以便尽快得到这个结果。