《Solr in action》笔记与总结:一

之前没做过搜索引擎相关的业务,最近口袋的文献和指南搜索需要进行调整优化,遂入坑solr,出乎意料的是solr的相关资料非常少(更别提中文了),官网的介绍又非常的干,堆砌各种example,刚好发现了一本《solr in action》(以solr4为例讲解),读了几章后,收获颇丰,所以这次的双周分享是摘录《solr in action》中那些让我感到醍醐灌顶的话。

Why do I need a search engine?

Search engines like Solr are optimized to handle data exhibiting four main characteristics:

  1. Text-centric(文本为中心)
  2. Read- dominant(以读为主)
  3. Document- oriented(面向文档)
  4. Flexible schema(灵活的schema)

Text-centric

We think text-centric is more appropriate for describing the type of data Solr handles.
Of course, a search engine also supports non text data such as dates and numbers, but its primary strength is handling text data based on natural language.

搜索引擎主要是用来处理大段文本的搜索。

Read- dominant

Think of read-dominant as meaning that documents are read far more often than they’re created or updated.
if you must update existing data in a search engine often, that could be an indication that a search engine might not be the best solution for your needs. Another NoSQL technology, like Cassandra, might be a better choice when you need fast random writes to existing data.

搜索引擎以读为主,如果需要频繁的更新,那么solr不会是个好选择。

Document-oriented

Ina search engine, a document is a self-contained collection of fields, in which each field only holds data and doesn’t contain nested fields.
In general, you should store the minimal set of information for each document needed to satisfy search requirements.

在搜索引擎的数据结构中,是面向文档的,文档中包含一组fields。

Flexible schema

In a relational database, every row in a table has the same structure. In Solr, documents can have different fields.

文档是非结构化的,不同的文档可以由完全不同的fields组成,前提是field在managed-schema中有定义。

Don’t use a search engine to ...

  1. First, search engines are designed to return a small set of documents per query, usually 10 to 100.
    搜索引擎应该只用来返回少量的结果集。如果一次性请求所有大量的结果,索引查询是会比较快,但是根据index重建大量的document会很慢。
  2. Another use case in which you shouldn’t use a search engine is deep analytic tasks that require access to a large subset of the index.
  3. Also, there’s no direct support in most search engines for document-level security, at least not in Solr.
    solr不支持文档级别的安全校验。

What is Solr?

Information retrieval engine

Solr is built on Apache Lucene, a popular, Java-based, open source, information retrieval library.

In a nutshell, Solr uses Lucene to provide the core data structures for indexing documents and executing searches to find documents.
如你所见,solr其实是使用Lucene来实现建立index&执行search等核心操作的。

one key difference between a Lucene query and a database query is that in Lucene results are ranked by their relevance to a query, and database results can only be sorted by one or more of the table columns.
Lucene对搜索结果的排序有一套复杂的公式,被///因素所影响,而数据库只能根据一列或多列column来简单的排序。

Map Reduce is a programming model that distributes large-scaled data-processing operations across a cluster of commodity servers by formulating an algorithm into two phases: map and reduce.
MapReduce最早是Google提出的,被用来进行海量网页的索引和搜索。同样的,Solr提供了SolrCloud,可以运用MapReduce的思想来处理large-scaled数据的检索,大大提高的性能及服务的高可用。

With Lucene, you need to write Java code to define fields and how to analyze those fields. Solr adds a simple, declarative way to define the structure of your index and how you want fields to be represented and analyzed: an XML-configuration document named schema.xml. Solr also provides copy and dynamic fields.

ok,既然Solr is built on Lucene,那么两者有什么区别呢?Lucene其实是用户不友好的,直接使用Lucene的话,你需要写繁琐的java代码去定义field,而solr提供了简单的xml文件来配置field,同时solr还提供了copy and dynamic fields。
所谓copy field,提供了一个联合field,即一个name可以对应多个Field。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,657评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,889评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,057评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,509评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,562评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,443评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,251评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,129评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,561评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,779评论 3 335
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,902评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,621评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,220评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,838评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,971评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,025评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,843评论 2 354

推荐阅读更多精彩内容