我正在准备我的文凭考试,主题是 Apache SOLR 中的全文搜索。在介绍中,我应该详细说明 Apache SOLR 的目的和优点,即为什么人们会选择像 SOLR 这样的全文搜索引擎而不是 MySQL。使用像“SOLR in action (2013)”这样的文献,人们会说很容易确定在那个时代何时使用 SOLR、ElasticSearch 或其他东西,而不是 MySQL。2010 年还有一个很棒的问题: Comparison of full text search engine - Lucene, Sphinx, Postgresql, MySQL? 。唉,尽管 2010 年左右的答案很伟大,但现在看来答案已经过时了。例如“MySQL MyISAM 表类型支持全文搜索,但 InnoDB 不支持”。几年后,InnoDB 也添加了全文搜索支持。现在,有一些文章设法阐明了这一点,例如 https://lucidworks.com/post/full-text-search-engines-vs-dbms/其中指出全文搜索系统的优点是
搜索速度、各种索引和查询选项、排名和相关性功能...
然而,还有很多其他文章指出了诸如
MySQL 全文搜索现在可以在 80% 的情况下满足您的需求
等等,看来近10年来MySql、MongoDB、PostgreSQL等关系型数据库的全文检索能力急剧提升。
然而, https://db-engines.com/en/ranking_trend/system/Elasticsearch%3BMySQL%3BSolr上的图表显示,全文搜索引擎并没有失去人气,但它们的使用量正在增长,甚至 SOLR 也在失去速度渐渐地,现在似乎正在醒来。
那么,一定有什么事情吗?是那个吗:
ETC。
简而言之,是什么让您现在选择 Apache SOLR 或 Elastic,而不是 MySQL 或其他具有增强的全文搜索功能的关系数据库?如果您的关系数据库或 NoSQL 数据库中已经有数据,那么为什么 Apache SOLR 和 Elastic Search 仍然那么受欢迎,因为使用它们需要另一堆资源和管理?
所以核心问题是:如果我有一个使用 MySQL 数据库进行数据存储的系统,并且我需要为一个或多个字段添加全文搜索功能,包括模糊搜索(拼写错误)、同义词、词干提取,以处理相关性和排名以自定义方式,通常使用 MySQL FTS 更好(因此不需要另一堆资源和管理),还是像 Apache SOLR 或 Elastic …
我获得了多个证书文件,例如“cert1.crt”、“cert2.crt”等,以及多个 CRL 列表、“list1.crl”、“list2.crl”等。没有提供 rootCA 或任何其他类型的文件。我的任务是找出哪些证书没有被吊销。尽管广泛搜索“验证”命令,但我未能找到任何至少可以为我提供线索的命令或过程。最后,我设法做了一些 bash 脚本特技飞行,这让我可以手动测试每个 .crt 文件的序列号
for((i=1;i<9;i++))
do
echo $i
fileIn="crl"$i".crl"
#serial is manually c/p from each .crt file
serial="1319447396"
OUTPUT="$(openssl crl -in $fileIn -noout -text | grep $serial)"
echo $OUTPUT
done
Run Code Online (Sandbox Code Playgroud)
这样我可以一次手动执行一个操作,但它仅适用于少量文件(目前为 9 个)。如果有数十个文件,它会变得令人厌烦且低效,如果有 100 个以上,则不可能这样做。
我想知道是否有一种“智能”方法来验证 .crt 与 .crl ?或者至少有一种方法可以编写 bash 脚本来完成工作,这样我就不必手动检查每个 .crt 了?现在这远远超出了我的脚本知识范围。
因此,在伪方面,如果存在这样的事情,我会很兴奋:
openssl x509 -verify cert1.cert -crl_list list8.crl
Run Code Online (Sandbox Code Playgroud)