12 solr

问题

solr的作用是什么

答案

  • solr是一个检索和搜索引擎,以lucence为基础,基于倒排索引,完成文档的索引建立和内容搜索,典型的以空间换时间。
  • 先解释正排索引,它是以文档的ID为关键字,表中记录文档中每个字的位置信息,查找时扫描表中每个文档中字的信息直到找出所有包含查询关键字的文档。
“文档1”的ID > 单词1:出现次数,出现位置列表;单词2:出现次数,出现位置列表;单词n:出现次数,出现位置列表;
“文档2”的ID > 单词a:出现次数,出现位置列表;单词b:出现次数,出现位置列表;单词z:出现次数,出现位置列表;
  • 倒排表以正排为基础,是以字或词为关键字进行索引,表中关键字所对应的内容记录了出现这个字或词的所有文档,记录了该文档的ID和字符在该文档中出现的位置情况。
“关键词1”:“文档1”的ID,关键词1位置;“文档1”的ID,关键词1位置;“文档2”的ID,关键词1位置;
“关键词2”:“文档1”的ID,关键词2位置;“文档a”的ID,关键词2位置;“文档z”的ID,关键词2位置;
  • 分词,solr中自带的分词会将汉语按一个字一个字去划分,例如"南京的江苏万和挺不错的"就会被划分为"南"、"京"、"的"、"江"、"苏"、"万"、"和"、"挺"、"不"、"错"、"的";
    能否按照通常的语义去划分,就要使用用IK_analyzer。如此一来,上面那句话就会被划分为"南京"、"的"、"江苏"、"万和"、"挺不错"、"的";
    能否将"江苏万和"划分为一个词呢,就需要使用扩展词库;
    能否将"的"、"挺不错"不作为关键词呢,就需要使用停词库;
    能否将"南京"用金陵也能搜出来呢,就需要使用近义词。

猜你喜欢

转载自www.cnblogs.com/alichengxuyuan/p/12601893.html