草庐IT

ElastiSearch与Solr和Lucene

陈平安" 2023-04-12 原文

Lucene

Lucene是一套信息检索工具包! jar包!不包含搜索引擎系统!
包含的:索引结构!读写索引的工具!排序,搜索规则…工具类!

Lucene是apache软件基金会4 jakarta项目组的- -个子项目,是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文Lucene是apache软件基金会4雅加达项目组的–个子项目,是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文
检索引擎,而是一个全文检索引擎的架构 ,提供了完整的查询引擎和索引引擎,部分文本分析引擎(英文与德文两种西方语言)。(检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎(英文与德文两种西方语言)。
Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者是以此为基础建立Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者是以此为基础建立
起完整的全文检索引擎。Lucene是一 套用于全 文检索和搜寻的开源程式库,由Apache软件基金会支持和提供。Lucene提供了一 个起完整的全文检索引擎.是一套用于全文检索和搜寻的开源程式库,由apache软件基金会支持和提供.Lucene提供了一个
简单却强大的应用程式接口,能够做全文索弓和搜寻。在Java开发环境里Lucene是一个成熟的免费开源工具。就其本身而言,简单却强大的应用程式接口,能够做全文索弓和搜寻.在开发环境里Lucene是一个成熟的免费开源工具.就其本身而言,
Lucene是当前以及最近几年最受欢迎的免费]ava信息检索程序库。人们经常提到信息检索程序库,虽然与搜索引擎有关,但不应该[医]艾娃(是当前以及最近几年最受欢迎的免费信息检索程序库)人们经常提到信息检索程序库,虽然与搜索引擎有关,但不应该
将信息检索程序库与搜索引|擎相混淆。将信息检索程序库与搜索引|擎相混淆.
Lucene是一个全文检索引擎的架构。那什么是全文搜索引擎?Lucene是一个全文检索引擎的架构.那什么是全文搜索引擎?
全文搜索引擎是名副其实的搜索引擎,国外具代表性的有Google、Fast/AIlTheWeb、 AltaVista、 Inktomi、 Teoma、WiseNut等,全文搜索引擎是名副其实的搜索引擎,国外具代表性的有google、、/AIlTheWeb、AltaVista、Inktomi、Teoma、WiseNut等,
国内著名的有百度( Baidu)。它们都是通过从互联网上提取的各个网站的信息(以网页文字为主)而建立的数据库中,检索与用百度(国内著名的有百度)它们都是通过从互联网上提取的各个网站的信息(以网页文字为主)而建立的数据库中,检索与用
户查询条件匹配的相关记录,然后按- -定的排列顺序将结果返回给用户,因此他们是真正的搜索引擎。户查询条件匹配的相关记录,然后按–定的排列顺序将结果返回给用户,因此他们是真正的搜索引擎.
从搜索结果来源的角度,全文搜索引擎又可细分为两种, - -种是拥有自己的检索程序( Indexer ) , 俗称”蜘蛛" ( Spider )程序从搜索结果来源的角度,全文搜索引擎又可细分为两种,–种是拥有自己的检索程序(索引),俗称“蜘蛛”(蜘蛛)程序
或”机器人”( Robot )程序,并自建网页数据库,搜索结果直接从自身的数据库中调用,如上面提到的7家引擎;另- -种则是租用其或“机器人”(机器人)程序,并自建网页数据库,搜索结果直接从自身的数据库中调用,如上面提到的7家引擎;另–种则是租用其
他引擎的数据库,并按自定的格式排列搜索结果,如Lycos引擎。他引擎的数据库,并按自定的格式排列搜索结果,如Lycos引擎.

Lucene 和ElastiSearch关系

ElasticSearch是基于Lucene做了一-些封装和增强

ElastiSearch简介

Elasticsearch是一个实时分布式搜索和分析引擎。它让你以前所未有的速度处理大数据成为可能。
它用于全文搜索、结构化搜索、分析以及将这三者混合使用:
维基百科使用Elasticsearch提供全文搜索并高亮关键字,以及输入实时搜索(search-asyou-type)和搜索纠错(did-you-mean)等搜索
建议功能。
英国卫报使用Elasticsearch结合用户日志和社交网络数据提供给他们的编辑以实时的反馈,以便及时了解公众对新发表的文章的回
应。
StackOverflow结合全文搜索与地理位置查询,以及more-like-this功能来找到相关的问题和答案。
Github使用Elasticsearch检索1300亿行的代码。
但是Elasticsearch不仅用于大型企业,它还让像DataDog以及Klout这样的创业公司将最初的想法变成可扩展的解决方案。
Elasticsearch可以在你的笔记本.上运行,也可以在数以百计的服务器上处理PB级别的数据。
Elasticsearch是一个基于Apache Lucene™的开源搜索引擎。无论在开源还是专有领域, Lucene可以被认为是迄今为止最先进、
性能最好的、功能最全的搜索引擎库。
但是, Lucene只是一个库。 想要使用它,你必须使用Java来作为开发语言并将其直接集成到你的应用中,更糟糕的是, Lucene非
常复杂,你需要深入了解检索的相关知识来理解它是如何工作的。
Elasticsearch也使用Java开发并使用Lucene作为其核心来实现所有索引|和搜索的功能,但是它的目的是通过简单的RESTful API来
隐藏Lucene的复杂性,从而让全文搜索变得简单。

Solr简介

Solr是Apache下的- -个顶级开源项目,采用ava开发,它是基于Lucene的全文搜索服务器。Solr提供 了比Lucene更为丰富的查询
语言,同时实现了可配置、可扩展,并对索引、搜索性能进行了优化
Solr可以独立运行,运行在Jetty. Tomcat等这些Servlet容器中 , Solr索引的实现方法很简单,用POST方法向Solr服务器发送一
个描述Field及其内容的XML文档, Solr根据xml文档添加、删除、更新索引。Solr 搜索只需要发送HTTP GET请求,然后对Solr
返回Xml、json等格式的查询结果进行解析,组织页面布局。Solr不提供构建UI的功能, Solr提供了一个管理界面,通过管理界面可
以查询Solr的配置和运行情况。
solr是基于lucene开发企业级搜索服务器,实际上就是封装了lucene。
Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器
提交-定格式的文件,生成索引;也可以通过提出查找请求,并得到返回结果。

ElastiSearch和Solr比较

ElasticSearch Vs Solr总结

1、es基本是开箱即用,非常简单。Solr安装略微复杂一 丢丢!
I
2、Solr 利用Zookeeper进行分布式管理,而Elasticsearch自身带有分布式协调管理功能。
(3 ) Solr支持更多格式的数据,比如ISON、XML、 CSV ,而Elasticsearch仅支持json文件格式。
4、Solr 官方提供的功能更多,而Elasticsearch本身更注重于核心功能,高级功能多有第三方插件提供,例如图形化界面需要
kibana友好支撑
5、Solr 查询快,但更新索引时慢(即插入删除慢) , 用于电商等查询多的应用;
●ES建立索引快(即查询慢) ,即实时性查询快,用于facebook新浪等搜索。
●Solr 是传统搜索应用的有力解决方案,但Elasticsearch更适用于新兴的实时搜索应用。
6、Solr比较成熟,有一个更大,更成熟的用户、开发和贡献者社区,而Elasticsearch相对开发维护者较少,更新太快,学习使用
更适用于新兴的实时搜索应用。
6、Solr比较成熟,有一个更大,更成熟的用户、开发和贡献者社区,而Elasticsearch相对开发维护者较少,更新太快,学习使用
成本较高。.

通过"狂神说"学习的ElastiSearch啦

有关ElastiSearch与Solr和Lucene的更多相关文章

  1. ruby-on-rails - solr 清理查询 - 2

    我在Rails上使用带有ruby​​的solr。一切正常,我只需要知道是否有任何现有代码来清理用户输入,比如以?开头的查询。或* 最佳答案 我不知道执行此操作的任何代码,但理论上可以通过查看parsingcodeinLucene来完成并搜索thrownewParseException(只有16个匹配!)。在实践中,我认为您最好只捕获代码中的任何solr异常并显示“无效查询”消息或类似信息。编辑:这里有几个“sanitizer”:http://pivotallabs.com/users/zach/blog/articles/937-s

  2. ruby-on-rails - 用 Solr 全文搜索不规则的说唱歌手名字 - 2

    我正在myrapwebsite上实现全文搜索功能,我遇到了一些关于说唱歌手和歌曲名称的问题。例如,某人可能想使用查询“camron”(省略中间单词撇号)来搜索说唱歌手“Cam'ron”。同样,有人可能会使用查询“3peat”来搜索歌曲“3Peat”。“TheNotoriousB.I.G.”有点奇怪:“TheNotoriousBIG”和“TheNotoriousB.I.G.”两者都有效(我猜是因为solr.StandardFilterFactory从首字母缩略词中删除了点?),但“TheNotoriousB.I.G”(即减去结尾的点)没有。理想情况下,这些名称的所有合理变体都应该有效。我

  3. ruby-on-rails - sunspot solr 按多个术语搜索 - 2

    我正在使用sunspot_railsgem,我正在尝试进行如下搜索:搜索名称为Mary或Sally的用户但我不知道如何做或。如果我做类似的事情:search=Users.searchdofulltext'MarySally'end或search=Users.searchdofulltext'Mary'fulltext'Sally'end我没有得到任何结果......但是如果我做其中一个,而不是两个,我会得到预期的结果:search=Users.searchdofulltext'Mary'#orfulltext'Sally'end将返回单个项目。对于太阳黑子,这甚至可能吗?-------

  4. ruby-on-rails - 无法重新索引 Sunspot SOLR - 错误 - RSolr::Error::Http - 500 内部服务器错误 - 2

    每次我尝试使用...重建索引rakesunspot:solr:reindex这些错误消息总是显示:Error-RSolr::Error::Http-500InternalServerError-retrying...Error-RSolr::Error::Http-500InternalServerError-ignoring...Error-RSolr::Error::Http-500InternalServerError-retrying...Error-RSolr::Error::Http-500InternalServerError-ignoring...我试着停止然后开始使用

  5. ruby-on-rails - Rails 应用程序:Solr 抛出 RSolr::Error::Http - 执行搜索时未找到 404 - 2

    非常迷茫,因为我没有对我的搜索进行任何更改,该搜索一直有效,但不知何故我休息了。作为Rails的新手,错误输出没有给我足够的细节来进行调试。下面的相关代码-询问您是否还想查看其他内容。home.html.slim(带有搜索表单的摘录)=form_tagsearch_venues_path,method::get,id:'search'do|f|.search-fields.span16p=text_field_tag:q,'',placeholder:"Searchforcoffee,hotel,etc",class:'span7search-field'p=text_field_ta

  6. javascript - 是否有类似 Solr 或 Elasticsearch 的东西只能在 Javascript 中在客户端上使用? - 2

    我们有一个小数据集,想以一种巧妙的方式搜索它,以便填充一个自动完成的输入框。用户想要搜索一种类型的实体,但应该能够输入关联类型的属性。由于我们的应用程序非常特定于行业,我将尝试将抽象问题置于更相关的上下文中:示例:用户想要选择某一种水果,可以利用水果的很多不同特征来进行搜索。她可能会搜索其名称(apple)、相同水果的特殊类型(goldendelicious)、本地化版本(apfel、تواح,pomme),还有其他特征,例如含有水果的食物(pandowdy,cider),甚至是结果来自对其描述的全文搜索。通常我想使用类似solr的东西或elasticsearch,但我们的数据集并不是

  7. go - 如何连接 Go 应用程序和 Apache Solr? - 2

    我想连接我的Go应用程序和Apachesolr我手动配置了apacheSolrPath=>/home/vtrk/Solr/solr-4.9.1Solr运行完美Port:localhost:8983/solr/但我不知道如何连接我的Go应用程序。如何连接Go应用程序和ApacheSolr? 最佳答案 你可以看看这个库,看看是否能解决你的需求https://github.com/rtt/Go-Solr/ 关于go-如何连接Go应用程序和ApacheSolr?,我们在StackOverflow

  8. xml - Solr 4.0 XML查询全部删除 - 2

    什么是删除核心中所有数据的solrXML查询我试过,curlhttp://localhost:8983/solr/core0/update?commit=true-H"Content-Type:text/xml"--data-binary'id:*' 最佳答案 你可以试试:-curl-curl-H'Content-Type:text/xml'http://localhost:8983/solr/update--data-binary'*:*'请务必使用commit=true来反射(reflect)这些更改。或从浏览-http://l

  9. xml - Solr 3.5 : Mutliple values encountered for non multivalued field - 2

    我在我的Solrschema.xml文件中定义了一个多值字段来实现自动完成功能,如下所示:但是,我看到这样的错误:ERROR[org.apache.solr.core.SolrCore](http-executor-threads-639)org.apache.solr.common.SolrException:ERROR:[doc=ffff]multiplevaluesencounteredfornonmultiValuedfieldnameac:[abcdef,abcdef]我希望属性multiValued="true"应该处理这个。请提出建议。问候。

  10. java - 在 solr 的类路径中找不到资源 'solrconfig.xml' - 2

    问题我无法访问solr管理页面。当我在本地系统上运行url时:http://localhost:8983/solr/admin/cores?action=CREATE&name=new_core&configSet=basic_configs回应40017ErrorCREATEingSolrCore'new_core':Unabletocreatecore:new_coreCausedby:Can'tfindresource'solrconfig.xml'inclasspathor'/var/lib/tomcat7/solr/new_core/conf'400我已提交链接:https:

随机推荐