小编Gis*_*has的帖子

全文搜索 - 我应该选择专用搜索引擎(SOLR、Elastic)还是 RDBMS?

我正在准备我的文凭考试,主题是 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 也在失去速度渐渐地,现在似乎正在醒来。

那么,一定有什么事情吗?是那个吗:

  • SOLR、Elastic、Sphinx...仍然比它们的关系对应物快得多吗?
  • 还有更多的选项,比如高级的、可定制的标记化、分面?也许有更好的语言支持?
  • 关系数据库无法很好地处理大量文档的搜索?

ETC。

简而言之,是什么让您现在选择 Apache SOLR 或 Elastic,而不是 MySQL 或其他具有增强的全文搜索功能的关系数据库?如果您的关系数据库或 NoSQL 数据库中已经有数据,那么为什么 Apache SOLR 和 Elastic Search 仍然那么受欢迎,因为使用它们需要另一堆资源和管理?

所以核心问题是:如果我有一个使用 MySQL 数据库进行数据存储的系统,并且我需要为一个或多个字段添加全文搜索功能,包括模糊搜索(拼写错误)、同义词、词干提取,以处理相关性和排名以自定义方式,通常使用 MySQL FTS 更好(因此不需要另一堆资源和管理),还是像 Apache SOLR 或 Elastic …

mysql lucene solr full-text-search elasticsearch

1
推荐指数
1
解决办法
2770
查看次数

根据各种 CRL 文件验证 SSL 证书

我获得了多个证书文件,例如“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)

bash ssl openssl verify ssl-certificate

-1
推荐指数
1
解决办法
2773
查看次数