正如您所提到的,您正在搜索的只是姓名、电子邮件或 ID 等,而不是大文本。
因此,考虑一个案例,您有 6 个文件/记录的名称如下,那么您可以更好地理解大文本是否重要。
- 罗希特·库马尔·巴特纳加尔
- 希尔帕·辛德
- 马诺伊库马尔
- 罗希特·巴特纳加尔·坎达斯瓦米
- 罗希特·库马尔·辛迪·巴特纳格尔
- 罗希特·巴特纳格尔
如果用户来搜索 Rohit Bhatnagar,然后使用正则表达式,您将以两种方式显示结果:
案例一:正则表达式是严格匹配的
- 罗希特·巴特纳加尔·坎达斯瓦米
- 罗希特·巴特纳格尔
案例二:当正则表达式放松时
- 罗希特·库马尔·巴特纳加尔
- 罗希特·巴特纳加尔·坎达斯瓦米
- 罗希特·库马尔·辛迪·巴特纳格尔
- 罗希特·巴特纳格尔
如果我们检查 case Ist,您会遗漏两件事放松(记录 1 和 5 将被遗漏),并且在排名中完全匹配应该排在最重要的位置,这可能更相关。
在案例 2 中,我们放宽了但仍然完全匹配低于排名
因此,如果需要相关搜索,那么是的,您可以使用搜索引擎。您还可以调整是否需要记录 5,因为如果您发现这可能看起来无关紧要,因此您可以控制之间应该有多少单词来考虑文档匹配。如果我们说在两者之间考虑 1 个单词,那么记录 5 将从结果中删除。
除了搜索相关性之外,如果 QPS 很高,您可以水平扩展搜索。您还可以使用机器学习技术(学习排名),也可以应用同义词、词干提取等。还有许多其他好处,您可以从文档中了解加入、流式传输、分片等
Solr: http: //lucene.apache.org/solr/guide/7_6/
ES:https ://www.elastic.co/guide/en/elasticsearch/reference/6.4/index.html
如果需要上面提到的或在不久的将来,那么您可以使用 ElasticSearch 或 Solr 作为搜索引擎,否则您应该对当前系统很好。