lucene/solr
玉爷~
技术学的好,讨饭讨到老。
展开
-
solr简介
Solr 是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务器。Solr提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展,并对索引、搜索性能进行了优化。 Solr可以独立运行,运行在Jetty、Tomcat等这些Servlet容器中,Solr 索引的实现方法很简单,用 POST 方法向 Solr 服务器发送一个描述 Field 及其内容的 ...原创 2019-07-23 23:22:54 · 188 阅读 · 0 评论 -
Lucene索引库的维护
公共代码提取,下面的例子会用到的方法: //提取公共代码:获得indexWrite对象 public IndexWriter getIndexWriter() throws IOException { Directory directory = FSDirectory.open(new File("E:\\eclipse-workspace\\ww_19lucene&solr\\in...原创 2019-07-23 00:32:31 · 141 阅读 · 0 评论 -
Lucene中文分词
1、分析器(Analyzer)的执行过程 如下图是语汇单元的生成过程: 从一个Reader字符流开始,创建一个基于Reader的Tokenizer分词器,经过三个TokenFilter生成语汇单元Tokens。 要看分析器的分析效果,只需要看Tokenstream中的内容就可以了。每个分析器都有一个方法tokenStream,返回一个tokenStream对象。 2、分析器的分词效果 ...原创 2019-07-23 00:29:24 · 710 阅读 · 1 评论 -
Lucene查询索引(简)
1、实现步骤 第一步:创建一个Directory对象,也就是索引库存放的位置。 第二步:创建一个indexReader对象,需要指定Directory对象。 第三步:创建一个indexsearcher对象,需要指定IndexReader对象 第四步:创建一个TermQuery对象,指定查询的域和查询的关键词。 第五步:执行查询。 第六步:返回查询结果。遍历查询结果并输出。 第七步:关...原创 2019-07-23 00:25:29 · 261 阅读 · 0 评论 -
Lucene实现全文检索的流程
1、索引和搜索流程图 (1)绿色表示索引过程,对要搜索的原始内容进行索引构建一个索引库,索引过程包括: 确定原始内容即要搜索的内容à采集文档à创建文档à分析文档à索引文档 (2)红色表示搜索过程,从索引库中搜索内容,搜索过程包括: 用户通过搜索界面à创建查询à执行搜索,从索引库搜索à渲染搜索结果 2、创建索引 对文档索引的过程,将用户要搜索的文档内容进行索引,索引存储在索引库...原创 2019-07-23 00:20:52 · 155 阅读 · 0 评论 -
Lucene使用前概念了解
1、数据库搜索 数据库中的搜索很容易实现,通常都是使用sql语句进行查询,而且能很快的得到查询结果。 为什么数据库搜索很容易? 因为数据库中的数据存储是有规律的,有行有列而且数据格式、数据长度都是固定的。 2、数据分类 我们生活中的数据总体分为两种:结构化数据和非结构化数据。 结构化数据:指具有固定格式或有限长度的数据,如数据库,元数据等。 非结构化数据:指不定长或无固定格式的...原创 2019-07-23 00:12:08 · 95 阅读 · 0 评论 -
使用SolrJ管理索引库
使用solrJ操作索引库,必须先开启服务器。因为操作索引库的是solr项目,我们只是通过solrJ接口向该项目发送请求,告诉solr项目来操作索引库。 1、添加jar包 添加的jar包分为两部分 (1)solrj相关jar (2)solr运行的jar包 2、添加/更新document 本质没有update方法,update就是删除document后添加一个document。id...原创 2019-07-24 17:54:16 · 153 阅读 · 0 评论 -
Solr——dataimport插件批量导入数据
例子:将mysql中lucene库products表中3000多条数据导入solr中 步骤: 1、导入dataimport和mysql驱动的jar包 把dataimport插件依赖的jar包添加到solrcore(collection1\lib)中 2、配置solrconfig.xml文件 添加一个requestHandler <requestHandler name=...原创 2019-07-24 00:56:20 · 522 阅读 · 0 评论 -
solr后台界面管理索引库
1、添加/修改document 修改其实是先删除后添加,id为索引库中有的即修改,没有就是添加 2、删除document (1)根据id删除 (2)根据条件删除 (3)删除所有 3、查询document ...原创 2019-07-24 00:53:34 · 240 阅读 · 0 评论 -
Lucene创建索引库
1、导包 2、实现步骤 第一步:创建一个java工程,并导入jar包。 第二步:创建一个indexwriter对象。 1)指定索引库的存放位置Directory对象 2)指定一个分析器,对文档内容进行分析。 第二步:创建document对象。 第三步:创建field对象,将field添加到document对象中。 第四步:使用indexwriter对象将document对...原创 2019-07-23 00:23:24 · 280 阅读 · 0 评论 -
solr配置中文分析器
配置中文分析器前先解释一下schema.xml中的基本标签 1、schema.xml文件简介 (1)FieldType域类型定义 相当于对lucene中的LongField、TextField...进行了封装 (2)Field定义 相当于lucene中的field名,在solr中,schema.xml中没有的定义的field,使用就会报错 (3)uniqueKey ...原创 2019-07-23 23:33:05 · 319 阅读 · 0 评论 -
配置单机solr及运行
1、Solr Home与SolrCore 创建一个Solr home目录,SolrHome是Solr运行的主目录,目录中包括了运行Solr实例所有的配置文件和数据文件,Solr实例就是SolrCore,一个SolrHome可以包括多个SolrCore(Solr实例),每个SolrCore提供单独的搜索和索引服务。 example\solr是一个solr home目录结构,如下: 上...原创 2019-07-23 23:25:51 · 324 阅读 · 0 评论 -
Lucene索引库查询(详细)
对要搜索的信息创建Query查询对象,Lucene会根据Query查询对象生成最终的查询语法,类似关系数据库Sql语法一样Lucene也有自己的查询语法,比如:“name:lucene”表示查询Field的name为“lucene”的文档信息。 公共代码提取,以下例子会用到该方法: //公共代码提取——获得IndexSearcher对象 public IndexSearcher get...原创 2019-07-23 00:37:00 · 567 阅读 · 0 评论