导航:首页 > 网络数据 > solr最大数据量

solr最大数据量

发布时间:2023-03-27 11:30:51

⑴ solr索引文件 最大多少

请查看Lucene3.5源码中 org.apache.lucene.index.IndexWriterConfig 的156行。

⑵ solr get请求大小

不用服务器辩晌亮不同限制。
由于jsonp跨域请求只能通过get请求,url长度根据浏览器及服务谨灶器的不同而有不同限制。若要携宽支持IE的话,最大的长度为2083字符,若是中文字符的话只有2083/9=231个字符。

⑶ Solr4.5 支持多大的数据索引

给你个测试结果,自己考虑
测试一:250万记录,300M左右文本,生成索引专380M左右,800线程下平属均处理时间300ms。
测试二:37000记录,索引数据库中的两个varchar字段,索引文件2.6M,800线程下平均处理时间1.5ms。

⑷ 如何将solrconfig.xml中row行设置最大

本节详细讲解solrconfig.xml
1.如果配置文件配置错误,是否提示。true要报错,false不报错。

<abortOnConfigurationError>${solr.abortOnConfigurationError:true}</abortOnConfigurationError>

2.solr版本

<信培luceneMatchVersion>LUCENE_31</luceneMatchVersion>

3. 索引文件目录,建索引的目录和查询的目录都是它。

<dataDir>${solr.data.dir:./solr/db/data}</dataDir>
4.一些基础配置
4.1多少个document进行合并

<mergeFactor>10</mergeFactor>
<!-- Sets the amount of RAM that may be used by Lucene indexing
for buffering added documents and deletions before they are

flushed to the Directory. -->
4.2 缓存大小

<ramBufferSizeMB>32</ramBufferSizeMB>
多少个文档自动合并

<mergeFactor>10</mergeFactor>

(回去了,下次再更新。。)
(接着上次的更新)

4.3.
设置域的最大长度

<maxFieldLength>10000</maxFieldLength>
设置写锁的延迟时间
<writeLockTimeout>1000</writeLockTimeout>
设置提交锁的延迟
<commitLockTimeout>10000</commitLockTimeout>
4.4
直接更新的方法:滑贺唯即调用solr默认的url访问。

<updateHandler class="solr.DirectUpdateHandler2">

自动提交的最大文档数,最大时间

<autoCommit>
<maxDocs>10000</maxDocs>
<maxTime>1000</maxTime>
</autoCommit>拍迹

4.5包含所有查询的参数设置 <query>
设置lru缓存

<filterCache class="solr.FastLRUCache"
size="16384"
initialSize="4096"
autowarmCount="4096"/>
设置查询结果缓存

<queryResultCache class="solr.LRUCache"
size="16384"
initialSize="4096"
autowarmCount="1024"/>
设置文档缓存
<documentCache class="solr.LRUCache"
size="16384"
initialSize="16384"/>
是否延迟加载索引域

<enableLazyFieldLoading>true</enableLazyFieldLoading>
设置查询的最大doc数

<queryResultMaxDocsCached>500</queryResultMaxDocsCached>
这个参数暂时未用

<maxWarmingSearchers>2</maxWarmingSearchers>

假如用dataimport这solr自带的导入数据命令时,的参数,即与数据库对应的文件的位置

<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">C:\solr-tomcat\solr\db\conf\db-data-config.xml</str>
</lst>
</requestHandler>

这个标签是用来控制主索引服务器,与从索引服务器分发索引快照的所有属性的

<requestHandler name="/replication" class="solr.ReplicationHandler" >
<lst name="master">
<str name="replicateAfter">commit</str>
<str name="replicateAfter">startup</str>
<str name="confFiles">schema.xml,stopwords.txt,elevate.xml</str>
<str name="commitReserveDuration">00:00:60</str>
<str name="httpBasicAuthUser">345</str>
<str name="httpBasicAuthPassword">345</str>
</lst>
</requestHandler>

这个标签和他的名字是一样的,表示用于集群的组件所有参数

<searchComponent name="clustering"
enable="${solr.clustering.enabled:false}"
class="solr.clustering.ClusteringComponent" >
<!-- Declare an engine -->
<lst name="engine">
<!-- The name, only one can be named "default" -->
<str name="name">default</str>
<!-- Class name of Carrot2 clustering algorithm.

Currently available algorithms are:

* org.carrot2.clustering.lingo.LingoClusteringAlgorithm
* org.carrot2.clustering.stc.STCClusteringAlgorithm

See http://project.carrot2.org/algorithms.html for the
algorithm's characteristics.
-->
<str name="carrot.algorithm">org.carrot2.clustering.lingo.LingoClusteringAlgorithm</str>
<!-- Overriding values for Carrot2 default algorithm attributes.

For a description of all available attributes, see:
http://download.carrot2.org/stable/manual/#chapter.components.
Use attribute key as name attribute of str elements
below. These can be further overridden for indivial
requests by specifying attribute key as request parameter
name and attribute value as parameter value.
-->
<str name="LingoClusteringAlgorithm.desiredClusterCountBase">20</str>

<!-- The language to assume for the documents.

For a list of allowed values, see:
http://download.carrot2.org/stable/manual/#section.attribute.lingo.MultilingualClustering.defaultLanguage
-->
<str name="MultilingualClustering.defaultLanguage">ENGLISH</str>
</lst>
<lst name="engine">
<str name="name">stc</str>
<str name="carrot.algorithm">org.carrot2.clustering.stc.STCClusteringAlgorithm</str>
</lst>
</searchComponent>

当发生集群命令时,对应的相应参数。表示是否开启集群等。

<requestHandler name="/clustering"
startup="lazy"
enable="${solr.clustering.enabled:false}"
class="solr.SearchHandler">
<lst name="defaults">
<bool name="clustering">true</bool>
<str name="clustering.engine">default</str>
<bool name="clustering.results">true</bool>
<!-- The title field -->
<str name="carrot.title">name</str>
<str name="carrot.url">id</str>
<!-- The field to cluster on -->
<str name="carrot.snippet">features</str>
<!-- proce summaries -->
<bool name="carrot.proceSummary">true</bool>
<!-- the maximum number of labels per cluster -->
<!--<int name="carrot.numDescriptions">5</int>-->
<!-- proce sub clusters -->
<bool name="carrot.outputSubClusters">false</bool>

<str name="defType">edismax</str>
<str name="qf">
text^0.5 features^1.0 name^1.2 sku^1.5 id^10.0 manu^1.1 cat^1.4
</str>
<str name="q.alt">*:*</str>
<str name="rows">10</str>
<str name="fl">*,score</str>
</lst>
<arr name="last-components">
<str>clustering</str>
</arr>
</requestHandler>

默认查询条件

<admin>
<defaultQuery>*:*</defaultQuery>

<!-- configure a healthcheck file for servers behind a
loadbalancer
-->
<!--
<healthcheck type="file">server-enabled</healthcheck>
-->
</admin>

⑸ solr每个数据节点最多能存多少,多大的数据

单个数据节点并无数据量的限制,整个集群能存多少数据取决于名称节点的内存有多大,所存储的单个文件的大小取决于整个集群所有数据节点的存储容量之和有多大

java 判断数据类型和方法的参数类型相同

1、如果你得到是一个Object对象,可以用if(obj instanceof String)来判断是否是String对象,int是基本类型不可以这么判断,只能用它的包装类Integer,同样用instanceof 。

2、如果set方法只能接受一个参数,而且必须有int的话,可以写多个set方法,如set(String),set(int),编写不同的处理逻辑。

3、instanceof 也是反射的一种方式。

4、如果有2个Object的参数,可以用if(obj1.getClass()==obj2.getClass())来判断类型是否相同,如果要得到类型名,可以用obj.getClass().getName()来获得对象的类名。

(6)solr最大数据量扩展阅读:

关于java数据类型的分类

Java基本类型共有八种,基本类型可以分为三类,字符类型char,布尔类型boolean以及数值类型byte、short、int、long、float、double。数值类型又可以分为整数类型byte、short、int、long和浮点数类型float、double。

JAVA中的数值类型不存在无符号的,它们的取值范围是固定的,不会随着机器硬件环境或者操作系统的改变而改变。实际上,JAVA中还存在另外一种基本类型void,它也有对应的包装类 java.lang.Void,不过我们无法直接对它们进行操作。

8 中类型表示范围如下:

byte:8位,最大存储数据量是255,存放的数据范围是-128~127之间。

short:16位,最大数据存储量是65536,数据范围是-32768~32767之间。

int:32位,最大数据存储容量是2的32次方减1,数据范围是负的2的31次方到正的2的31次方减1。

long:64位,最大数据存储容量是2的64次方减1,数据范围为负的2的63次方到正的2的63次方减1。

float:32位,数据范围在3.4e-45~1.4e38,直接赋值时必须在数字后加上f或F。

double:64位,数据范围在4.9e-324~1.8e308,赋值时可以加d或D也可以不加。

boolean:只有true和false两个取值。

char:16位,存储Unicode码,用单引号赋值。

⑺ solr内存调优

在使用使用solr时,当我们的数据量比较大时,我们就要考虑对solr内存进行调优了,不然solr程序就会通过oom脚本将solr实例杀死,导致程序无法正常使用兆州。如果在使用塌郑过程中遇到oom,可参考如下解决方案

这样在solr启动时就可以为JVM指定最小(-Xms)和最大(-Xmx)堆团猜颂大小

⑻ 如何用Solr搭建大数据查询平台

0×00 开头照例扯淡

自从各种脱裤门事件开始层出不穷,在下就学乖了,各个地方的密码全都改成不一样的,重要帐号的密码定期更换,生怕被人社出祖宗十八代的我,甚至开始用起了假名字,我给自己起一新网名”兴才”,这个看起来还不错的名字,其实是我们家乡骂人土话,意思是脑残人士…. -_-|||额好吧,反正是假的,不要在意这些细节。

这只是名,至于姓氏么,每个帐号的注册资料那里,照着百家姓上赵钱孙李周吴郑王的依次往下排,什么张兴才、李兴才、王兴才……于是也不知道我这样”兴才”了多久,终于有一天,我接到一个陌生电话:您好,请问是马兴才先生吗?

好么,该来的终于还是来了,于是按名索骥,得知某某网站我用了这个名字,然后通过各种途径找,果然,那破站被脱裤子了。
果断Down了那个裤子,然后就一发不可收拾,走上了收藏裤子的不归路,直到有一天,我发现收藏已经非常丰富了,粗略估计得好几十亿条数据,拍脑袋一想,这不能光收藏啊,我也搭个社工库用吧……

0×01 介绍

社工库怎么搭呢,这种海量数据的东西,并不是简单的用mysql建个库,然后做个php查询select * from sgk where username like ‘%xxxxx%’这样就能完事的,也不是某些幼稚骚年想的随便找个4g内存,amd双核的破电脑就可以带起来的,上面这样的语句和系统配置,真要用于社工库查询,查一条记录恐怕得半小时。好在这个问题早就被一种叫做全文搜索引擎的东西解决了,更好的消息是,全文搜索引擎大部分都是开源的,不需要花钱。

目前网上已经搭建好的社工库,大部分是mysql+coreseek+php架构,coreseek基于sphinx,是一款优秀的全文搜索引擎,但缺点是比较轻量级,一旦数据量过数亿,就会有些力不从心,并且搭建集群做分布式性能并不理想,如果要考虑以后数据量越来越大的情况,还是得用其他方案,为此我使用了solr。

Solr的基础是著名的Lucene框架,基于java,通过jdbc接口可以导入各种数据库和各种格式的数据,非常适合开发企业级的海量数据搜索平台,并且提供完善的solr cloud集群功能,更重要的是,solr的数据查询完全基于http,可以通过简单的post参数,返回json,xml,php,python,ruby,csv等多种格式。

以前的solr,本质上是一组servlet,必须放进Tomcat才能运行,从solr5开始,它已经自带了jetty,配置的好,完全可以独立使用,并且应付大量并发请求,具体的架构我们后面会讲到,现在先来进行solr的安装配置。

0×02 安装和配置

以下是我整个搭建和测试过程所用的硬件和软件平台,本文所有内容均在此平台上完成:

软件配置: solr5.5,mysql5.7,jdk8,Tomcat8 Windows10/Ubuntu14.04 LTS

硬件配置: i7 4770k,16G DDR3,2T西数黑盘

2.1 mysql数据库

Mysql数据库的安装和配置我这里不再赘述,只提一点,对于社工库这种查询任务远远多于插入和更新的应用来说,最好还是使用MyISAM引擎。
搭建好数据库后,新建一个库,名为newsgk,然后创建一个表命名为b41sgk,结构如下:

id bigint 主键 自动增长

username varchar 用户名

email varchar 邮箱

password varchar 密码

salt varchar 密码中的盐或者第二密码

ip varchar ip、住址、电话等其他资料

site varchar 数据库的来源站点

接下来就是把收集的各种裤子全部导入这个表了,这里推荐使用navicat,它可以支持各种格式的导入,具体过程相当的枯燥乏味,需要很多的耐心,这里就不再废话了,列位看官自己去搞就是了,目前我初步导入的数据量大约是10亿条。

2.2 Solr的搭建和配置

首先下载solr:
$ wget http://mirrors.hust.e.cn/apache/lucene/solr/5.5.0/solr-5.5.0.tgz

解压缩:
$ tar zxvf solr-5.5.0.tgz

安装jdk8:
$ sudo add-apt-repository ppa:webupd8team/java
$ sudo apt-get update
$ sudo apt-get install oracle-java8-installer
$ sudo apt-get install oracle-java8-set-default

因为是java跨平台的,Windows下和linux下solr是同一个压缩包,windows下jdk的安装这里不再说明。

进入解压缩后的solr文件夹的bin目录,solr.cmd和solr分别是windows和linux下的启动脚本:

因为社工库是海量大数据,而jvm默认只使用512m的内存,这远远不够,所以我们需要修改,打开solr.in.sh文件,找到这一行:

SOLR_HEAP=”512m”

依据你的数据量,把它修改成更高,我这里改成4G,改完保存. 在windows下略有不同,需要修改solr.in.cmd文件中的这一行:

set SOLR_JAVA_MEM=-Xms512m -Xmx512m

同样把两个512m都修改成4G。

Solr的启动,重启和停止命令分别是:
$ ./solr start
$ ./solr restart –p 8983
$ ./solr stop –all

在linux下还可以通过install_solr_service.sh脚本把solr安装为服务,开机后台自动运行。

Solr安装完成,现在我们需要从mysql导入数据,导入前,我们需要先创建一个core,core是solr的特有概念,每个core是一个查询、数据,、索引等的集合体,你可以把它想象成一个独立数据库,我们创建一个新core:

在solr-5.5.0/server/solr子目录下面建立一个新文件夹,命名为solr_mysql,这个是core的名称,在下面创建两个子目录conf和data,把solr-5.5.0/solr-5.5.0/example/example-DIH/solr/db/conf下面的所有文件全部拷贝到我们创建的conf目录中.接下来的配置主要涉及到三个文件, solrconfig.xml, schema.xml和db-data-config.xml。

首先打开db-data-config.xml,修改为以下内容:
<dataConfig>
<dataSource name="sgk" type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://127.0.0.1:3306/newsgk" user="root" password="password" batchSize="-1" />
<document name="mysgk">
<entity name="b41sgk" pk="id" query="select * from b41sgk">
<field column="id" name="id"/>
<field column="username" name="username"/>
<field column="email" name="email"/>
<field column="password" name="password"/>
<field column="salt" name="salt"/>
<field column="ip" name="ip"/>
<field column="site" name="site"/>
</entity>
</document>
</dataConfig>

这个文件是负责配置导入数据源的,请按照mysql实际的设置修改datasource的内容,下面entity的内容必须严格按照mysql中社工库表的结构填写,列名要和数据库中的完全一样。

然后打开solrconfig.xml,先找到这一段:
<schemaFactory class="ManagedIndexSchemaFactory">
<bool name="mutable">true</bool>
<str name="managedSchemaResourceName">managed-schema</str>
</schemaFactory>

把它全部注释掉,加上一行,改成这样:
<!-- <schemaFactory class="ManagedIndexSchemaFactory">
<bool name="mutable">true</bool>
<str name="managedSchemaResourceName">managed-schema</str>
</schemaFactory>-->
<schemaFactory class="ClassicIndexSchemaFactory"/>

这是因为solr5 以上默认使用managed-schema管理schema,需要更改为可以手动修改。

然后我们还需要关闭suggest,它提供搜索智能提示,在社工库中我们用不到这样的功能,重要的是,suggest会严重的拖慢solr的启动速度,在十几亿数据的情况下,开启suggest可能会导致solr启动加载core长达几个小时!

同样在solrconfig.xml中,找到这一段:

<searchComponent name="suggest" class="solr.SuggestComponent">
<lst name="suggester">
<str name="name">mySuggester</str>
<str name="lookupImpl">FuzzyLookupFactory</str> <!-- org.apache.solr.spelling.suggest.fst -->
<str name="dictionaryImpl">DocumentDictionaryFactory</str> <!-- org.apache.solr.spelling.suggest. -->
<str name="field">cat</str>
<str name="weightField">price</str>
<str name="suggestAnalyzerFieldType">string</str>
</lst>
</searchComponent>
<requestHandler name="/suggest" class="solr.SearchHandler" startup="lazy">
<lst name="defaults">
<str name="suggest">true</str>
<str name="suggest.count">10</str>
</lst>
<arr name="components">
<str>suggest</str>
</arr>
</requestHandler>

把这些全部删除,然后保存solrconfig.xml文件。

接下来把managed-schema拷贝一份,重命名为schema.xml (原文件不要删除),打开并找到以下位置:

只保留_version_和_root_节点,然后把所有的field,dynamicField和Field全部删除,添加以下的部分:
<field name="id" type="int" indexed="true" stored="true" required="true" multiValued="false" />
<field name="username" type="text_ik" indexed="true" stored="true"/>
<field name="email" type="text_ik" indexed="true" stored="true"/>
<field name="password" type="text_general" indexed="true" stored="true"/>
<field name="salt" type="text_general" indexed="true" stored="true"/>
<field name="ip" type="text_general" indexed="true" stored="true"/>
<field name="site" type="text_general" indexed="true" stored="true"/>
<field name="keyword" type="text_ik" indexed="true" stored="false" multiValued="true"/>

<Field source="username" dest="keyword"/>
<Field source="email" dest="keyword"/>
<uniqueKey>id</uniqueKey>

这里的uniqueKey是配置文件中原有的,用来指定索引字段,必须保留。新建了一个字段名为keyword,它的用途是联合查询,即当需要同时以多个字段做关键字查询时,可以用这一个字段名代替,增加查询效率,下面的Field即用来指定复制哪些字段到keyword。注意keyword这样的字段,后面的multiValued属性必须为true。

username和email以及keyword这三个字段,用来检索查询关键字,它们的类型我们指定为text_ik,这是一个我们创造的类型,因为solr虽然内置中文分词,但效果并不好,我们需要添加IKAnalyzer中文分词引擎来查询中文。在https://github.com/EugenePig/ik-analyzer-solr5下载IKAnalyzer for solr5的源码包,然后使用Maven编译,得到一个文件IKAnalyzer-5.0.jar,把它放入solr-5.5.0/server/solr-webapp/webapp/WEB-INF/lib目录中,然后在solrconfig.xml的fieldType部分加入以下内容:
<fieldType name="text_ik" class="solr.TextField">
<analyzer type="index" useSmart="false" class="org.wltea.analyzer.lucene.IKAnalyzer"/>
<analyzer type="query" useSmart="true" class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>

保存后,core的配置就算完成了,不过要导入mysql数据,我们还需要在mysql网站上下载mysql-connector-java-bin.jar库文件,连同solr-5.5.0/dist目录下面的solr-dataimporthandler-5.5.0.jar,solr-dataimporthandler-extras-5.5.0.jar两个文件,全部拷贝到solr-5.5.0/server/solr-webapp/webapp/WEB-INF/lib目录中,然后重启solr,就可以开始数据导入工作了。

阅读全文

与solr最大数据量相关的资料

热点内容
存储文件压缩包和文件夹哪个合适 浏览:778
看房子哪个网站比较好 浏览:817
oppoa57用什么数据线 浏览:832
一点停app真垃圾 浏览:53
移出私人空间文件找不到了 浏览:601
微信一视频切换到语音 浏览:190
电脑里我的照片放在哪个文件夹 浏览:288
iphone6s升级到128 浏览:674
移动硬盘视频文件修复 浏览:330
更新win10会不会丢失文件 浏览:21
win10会受病毒感染么 浏览:775
以及cad的存储文件的格式 浏览:45
有哪些招募网站 浏览:864
网站右侧qq客服代码 浏览:283
美国失业数据是什么 浏览:322
苹果中国利润 浏览:386
ff14低级职业快速升级 浏览:459
java应用程序已被阻止 浏览:650
69版本乌鸦视频 浏览:588
4g为什么网络很好却很卡 浏览:723

友情链接