带正则表达式的SQL与带逻辑合并函数的索引
我正在尝试开发一个复杂的文本搜索引擎。 我有许多书中数千页的文字。 我需要搜索包含指定复杂逻辑标准的页面。 这些标准几乎可以包含以下任何内容: A:全词 词根(从半音到词干,即所有单词都有某些关键字母) C:单词模板(在某些语言中,词根填充在某些模板中,形成各种词类,如形容词、过去/现在动词……) D:逻辑连接词:AND/OR/XOR/NOT/IF/IFF和括号表示优先级 现在,将页面的全文保存在数据库中(不编制索引)并使用SQL和正则表达式对其进行搜索会更快吗 或者更好的做法是构造word/root/template页面位置元组的索引。 因此,我们可以加强对单个单词/词根/模板的搜索。 然而,当我们在查询中引入逻辑连接词时,它变得很棘手。 在这种情况下,我考虑采取以下步骤: 1:分别搜索指定查询中的每个单词/词根/模板 2:基于优先级,我们根据逻辑连接一次合并两个结果列表(从步骤1开始) 例如,如果我们正在搜索“他和(现在或过去)”: 1:我们将分别搜索“he”、“is”和“was”,并获得每个单词的结果列表 2:使用合并功能或-Merge合并“is”和“was”的结果列表 3:使用合并函数AND-Merge将OR-Merge函数中的合并结果列表与“he”之一合并 然后将步骤3的结果作为指定查询的结果返回 你认为古鲁是什么?哪个更快?还有更好的主意吗带正则表达式的SQL与带逻辑合并函数的索引,sql,regex,merge,logical-operators,indexing,Sql,Regex,Merge,Logical Operators,Indexing,我正在尝试开发一个复杂的文本搜索引擎。 我有许多书中数千页的文字。 我需要搜索包含指定复杂逻辑标准的页面。 这些标准几乎可以包含以下任何内容: A:全词 词根(从半音到词干,即所有单词都有某些关键字母) C:单词模板(在某些语言中,词根填充在某些模板中,形成各种词类,如形容词、过去/现在动词……) D:逻辑连接词:AND/OR/XOR/NOT/IF/IFF和括号表示优先级 现在,将页面的全文保存在数据库中(不编制索引)并使用SQL和正则表达式对其进行搜索会更快吗 或者更好的做法是构造word/r
提前谢谢大家。对于这类问题有很多现成的解决方案。我强烈建议您使用其中一种,而不是开发自己的 您不会说您正在使用什么数据库解决方案。如果是Microsoft SQL Server,您可以使用它的功能。如果是MySQL,请查看它的。我相信Oracle、DB2和任何其他主要DBMS都将具有类似的功能
或者,看看Apache的or。这将允许您在不需要使用DBMS的情况下对文档进行索引。对于此类问题,有很多现成的解决方案。我强烈建议您使用其中一种,而不是开发自己的 您不会说您正在使用什么数据库解决方案。如果是Microsoft SQL Server,您可以使用它的功能。如果是MySQL,请查看它的。我相信Oracle、DB2和任何其他主要DBMS都将具有类似的功能
或者,看看Apache的or。这将允许您在无需使用DBMS的情况下为文档编制索引。感谢您抽出时间回答我的问题。我发现使用Oracle的BerkeleyDB和具有二进制搜索性能的合并功能非常可行。我的决定是因为阿拉伯语所需的支持非常复杂,而就我所能研究的而言,全文数据库并未涵盖这一点。感谢您抽出时间回答我的问题。我发现使用Oracle的BerkeleyDB和具有二进制搜索性能的合并功能是非常可行的。我的决定是由于阿拉伯语所需支持的复杂性,而就我所能研究的而言,全文数据库并未涵盖这一点。