首页
学习
活动
专区
圈层
工具
发布

Solr与MySQL查询性能对比

时间对比: 查询条件 时间 MySQL(无索引) 30s MySQL(有索引) 2s Solrj(select查询) 12s 如何优化?...那么这种排列是如何让随机读更快的呢?秘密在于Lucene底层读取文件的方式是基于memory mapped byte buffer的,也就是mmap。...时间对比: 查询条件 时间 MySQL(无索引) 30s MySQL(有索引) 2s Solrj(select查询) 12s Solrj(export查询) 2s 项目中如果用分页查询,就用select...想想Solr/Lucene的索引数据的方式就清楚了:倒排索引。对于某个索引字段,该字段下有哪几个值,对于每个值,对应的文档集合是建立索引的时候就清楚的,做聚合操作的时候“统计”下就知道结果了。...综合考虑了表拆分和使用Solr来做索引查询的工作量后,还是采用了Solr。

1.7K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    了解Solr

    ; import org.apache.solr.client.solrj.response.QueryResponse; import org.apache.solr.common.SolrDocument...动态的字段,使用java代码增加索引时可以动态的增加索引的name值,例如desc_i,具体使用在上面代码中adddynamicField()方法已有体现 solrconfig介绍 对于solr4.x的每个...openSearcher:文档提交后是否开启新的searcher,如果false,文档只是提交到index索引库,搜索结果中搜不到此次提交的文档;如果true,既提交到index索引库,也能在搜索结果中搜到此次提交的内容...调整这些缓存,需要根据索引库中文档的数量,每次查询结果的条数等。...假设以上的值分别为: 索引中文档的数量:1000000 每秒钟搜索的次数:100 过滤器的数量:200 一次查询返回最大的文档数量:100 不同查询和不同排序的个数

    1.8K20

    Solr技术(附软件分享)

    2)非结构化数据:指不定长或无固定格式的数据,如邮件,word 文档等. 非结构化数据又一种叫法叫全文数据。...用户可以通过 http 请求,向搜索引擎服务器提交一定格式的 XML 文件,生成索引;也 可以通过 Http Get 操作提出查找请求,并得到 xml/json 格式的返回结果。...文档通过 Http 利用 XML 加到一个搜索集合中。查询该集合也是通过 http 收到一个 XML/JSON 响应来实现。...SolrJ的使用 solrJ 是访问 Solr 服务的 JAVA 客户端,提供索引和搜索的请求方法,SolrJ 通常嵌入在业务系统中,通过 solrJ 的 API接口操作 Solr 服务。...; import org.apache.solr.client.solrj.response.QueryResponse; import org.apache.solr.common.SolrDocument

    1.7K21

    全文搜索引擎Solr原理和实战教程

    Lucene能够为文本类型的数据建立索引,所以你只要把你要索引的数据格式转化的文本格式,Lucene 就能对你的文档进行索引和搜索。 3....客户使用请求来请求Solr执行查询或索引文件等操作。 客户端应用程序可以通过创建HTTP请求和解析HTTP响应到达Solr。...客户使用Solr的五个基本操作来与Solr一起工作。这五个操作分别是:查询、索引、删除、提交和优化。 查询通过创建一个包含所有查询参数的URL来执行。Solr检查请求URL,执行查询并返回结果。...例如,索引操作可能包含请求正文中的文档。 Solr 还具有一个 EmbeddedSolrServer,它提供了一个 Java API 而不需要 HTTP 连接。...Lucene中使用了field的概念,用于表达信息所在位置(如标题中,文章中,url中),在建索引中,该field信息也记录在词典文件中,每个关键词都有一个field信息(因为每个关键字一定属于一个或多个

    4.1K10

    Solr在分布式环境中的应用

    catlina.sh #第一个tomcat(写在开头即可,分别是zookeeper集群的ip+port,分片片名,总分骗术,总分组数) JAVA_OPTS="-DzkHost=192.168.179.131...192.168.179.131:2181,192.168.179.131:2182,192.168.179.131:2183 -DnumShards=2 -DreplicationFactor=2" 8、分别修改...,数据库和索引库文档的映射关系,数据库的列明和索引库的字段完成映射(导入数据库表到solr中) solr在分布式项目中的应用 前提: 搭建一个mvc环境 步骤: 1、添加solr和zookeeper...; import org.apache.solr.client.solrj.beans.DocumentObjectBinder; import org.apache.solr.client.solrj.response.QueryResponse...QueryResponse response = itemDao.loadItem(params); // 获得本次查询到的文档集合 SolrDocumentList docList =

    1.1K20

    利用Solr服务建立的站内搜索雏形---solr1

    solr中的,然后就是加入搜索条件和要搜索的字段,再者就是一个查询类以及最后的结果的呈现,依次用到的是CommonsHttpSolrServer、SolrQuery、QueryResponse。...2.可是在组装好代码后运行是总是报错,也没有找到针对性的解决方案,但是调试的过程中把查询的条件取出来放到浏览器中查询是可以的,就是卡在QueryResponse qrsp = server.query(...-4.6.0.jar以外还导入了以下jar包,这些jar都来源于自己下载的\solr-4.4.0\solr-4.4.0\dist\solrj-lib目录下的所有jar包 3.有了jar包之后,就开始运行程序了...);  query.addField("content"); query.setStart(0);  query.setRows(15); 上面的这些代码是生命一个查询类,并赋给查询条件以及查询字段 QueryResponse...虽然以上算不得什么搜索引擎,也没有任何界面的显示,但是我已很欣慰,因为都已经能搜索了,离我的小百度还远么(开玩笑的^_^)下一步准备先看看solrj具体是怎么应用的,每个部分都如何使用的摸索弄个搜索引擎的模样出来过过瘾

    1K80

    SolrQuery VS QueryRequest

    solrj是一款开源的访问solr服务器的三方插件,通过这个插件,我们可以完成solr admin页面能够完成以及不能完成的操作,查询作为solr的一个使用频率最高的操作当然也是使用最广的,使用solrj...实现查询操作,基本上离不开下面几个类:SolrClient、SolrQuery以及QueryRequest,solrclient使用下面两个类型参数的方法: public final NamedList...request) throws SolrServerException, IOException { return request(request, null); } public QueryResponse...: 1.返回类型不同,request返回的是一个原始的json格式数据,要想获取具体查到到的文档需要剥丝抽茧获取,而query方法则返回了组装后的数据,我们获取想要的结果更容易些 2.输入参数类型不一样...SolrParams那样使用solr查询的基本语法 至于返回结果不同主要在于QueryResponse类的setResponse方法内部对solr返回的数据进行了简单的组装 @Override

    29610

    Web-第二十九天 Lucene&solr使用二【悟空教程】

    Solrj的使用(重点) 13. solr基本使用 a) schma.xml文件 b) 配置中文分词器 c) 配置业务域 d) DataimportHandler插件 14....Solrj的复杂查询 a) solr的查询语法 b) solrj的复杂查询 15. 京东商城学习案例 12. Solrj的使用 12.1....什么是solrj solrj是访问Solr服务的java客户端,提供索引和搜索的请求方法,如下图: ? Solrj和图形界面操作的区别就类似于数据库中使用jdbc和mysql客户端的区别一样。...需求 使用solrj调用solr服务实现对索引库的增删改查操作。 12.3. 环境准备 Solr:4.10.3 Jdk环境:1.7 IDE环境:Eclipse Mars2 12.4....2.Service 使用solrj来调用solr的服务进行索引和搜索 Service调用dao进行商品数据的维护时,要同步更新索引库(不实现) 3.Dao(本案例不实现) 对商品数据进行维护和查询 15.3

    98820

    day66_Solr学习笔记

    使用Solr 进行创建索引和搜索索引的实现方法很简单,如下: 创建索引:客户端(可以是浏览器也可以是Java程序)用 POST 方法向 Solr 服务器发送一个描述 Field 及其内容的 XML 文档...分别指定搜索和索引时的分析器。index 是创建索引,query 是查询索引。   ...4、Solrj的使用 4.1、什么是solrj solrj是访问Solr服务的java客户端,提供索引和搜索的请求方法,SolrJ通常嵌入在业务系统中,通过SolrJ的API接口操作Solr服务,如下图...Solrj和图形界面操作的区别就类似于数据库中你使用jdbc和mysql客户端的区别一样。 4.2、需求 使用solrj调用solr服务实现对索引库的增删改查操作。...如果数据库数据发生变化,调用solrj的客户端同步索引库。   Dao层:对商品数据进行维护和查询,使用mybatis完成数据库持久化。 Solrj服务器:   提供搜索和索引服务。

    1.4K40

    Solr_全文检索引擎系统

    Solr的作用: solr是一个现成的全文检索引擎系统, 放入tomcat下可以独立运行, 对外通过http协议提供全文检索服务(就是对索引和文档的增删改查服务), 在代码中可以通过solrJ(solr...Lucene和solr的区别: lucene是一个全文检索引擎工具包, 就是一堆jar包, 它放入tomcat下不能独立运行, 但是我们可以使用lucene来构建全文检索引擎系统; solr底层是用lucene...来开发的一个全文检索引擎系统, 放入tomcat下就可以独立运行, 对外通过http的形式,提供全文检索服务(索引和文档的增删改查服务)。...通过SolrJ操作并访问solr服务中的数据: 什么是solrj? solrj是访问solr服务的Java客户端,提供索引和搜索的请求方法。 ? 创建工程,并引入solrj所需的jar包: ?...(); 8 //3、给查询对象中设置查询条件 9 query.setQuery("*:*"); 10 //4、查询并获取响应 11 QueryResponse

    1.3K80

    solr使用教程二【面试+工作】

    据悉,双方签署 使用SolrJ方法基本一样也是设置这些个参数,只不过是SolrJ封装起来了,代码如下: ?...在诸多文档中都推荐使用基于索引来做检索建议,因此我们目前的实现也是采取该方案。...用户一般会沿着这个分组进一步深入搜索. 3.特殊情况 对于一般查询而言,分词和存储都是必要的.比如CPU类型”Intel 酷睿2双核 P7570”, 拆分成”Intel”,”酷睿”,”P7570”这样一些关键字并分别索引...我将着重讲述 MLT,因为使用它的可能性更大一些。幸运的是,不需要任何设置就可以查询它,所以您现在就可以开始查询。 MLT 要求字段被储存或使用检索词向量,检索词向量以一种以文档为中心的方式储存信息。...基本可以用上面这幅图来概述,这是一个拥有4个Solr节点的集群,索引分布在两个Shard里面,每个Shard包含两个Solr节点,一个是Leader节点,一个是Replica节点,此外集群中有一个负责维护集群状态信息的

    1.5K70
    领券