zoukankan      html  css  js  c++  java
  • solr-6.4.1 学习安装与配置 和 Elasticsearch(1.5.2)学习文档

    直接访问服务链接:
    3.1建立核心(core)
    当Solr的服务器在独立模式下启动的配置称为核心,当它在SolrCloud模式启动的配置称为集合。在这个例子中,我们将有关独立服务器和核心讨论。我们将在以后再讨论SolrCloud。首先,我们需要创建一个核心的索引数据。Solr的创建命令有以下选项:
    1. -c <name> -要创建的核心或集合的名称(必需)。
    2. -d <confdir> -配置目录,在SolrCloud模式非常有用。
    3. -n <configName> -配置名称。这将默认为核心或集合的名称。
    4. -p <port> -本地Solr的实例的端口发送create命令; 默认脚本试图通过寻找运行Solr的实例来检测端口。
    5. -s <shards> -Number of shards to split a collection into, default is 1.
    6. -rf <replicas> -集合中的每个文件的份数。默认值是1。

    在这个例子中,我们将使用的核心名称和配置目录-d参数-c参数。对于所有其它参数我们使用默认设置。
    现在在命令窗口浏览 solr-5.0.0in文件夹,并发出以下命令。
    solr create -c jcg -d basic_configs
    我们可以看到在命令窗口中下面的输出。
    Creating new core 'jcg' using command:
    http://localhost:8983/solr/admin/cores?action=CREATE&name=jcg&instanceDir=jcg
     {
     "responseHeader":{
     "status":0,
     "QTime":663},
     "core":"jcg"}
    2017 03-02
    solr配置 :
    配置环境 :tomcat1.8 jdk1.8 solr-6.4.1 window
    下载solr-6.4.1.zip就行 解压文件夹 solr-6.4.1
    第一步:
    把solr-6.4.1.zip解压之后,找到solr-6.4.1/server/server-webapp/目录下的webapp文件夹,复制粘贴到tomcat下的webapps下;
    第二步:
    solr-6.4.1/server/lib/ext目录下的所有jar包、和solr-6.4.1/dist下的solr-dataimporthandler-6.4.1.jar、solr-dataimporthandler-extras-6.4.1.jar粘贴复制到tomcat下的solr项目的WEB-INF/lib目录下;
    第三步:
    把server目录下的solr文件夹粘贴复制到其他目录,然后重命名为:solr-home,这是solr核心文件夹。
    第四步:
    修改tomcat下的solr项目的WEB-INF/web.xml,这一步用来指定默认的solr/home。在web.xml开头附近找到:
    <env-entry>
           <env-entry-name>solr/home</env-entry-name>
           <env-entry-value>D:/soft/apache-tomcat-8.0.39/solr-home</env-entry-value>
           <env-entry-type>java.lang.String</env-entry-type>
        </env-entry>
    然后取消注释,把<env-entry-value>填第三步solr-home文件夹的地址。
    第五步:
    在tomcat下的solr项目的WEB-INF下新建classes目录,然后把solr-6.4.1/server/resources下的log4j.properties粘贴过去;
    做完这五步就基本搭建完成了,可以访问http://localhost:8080/solr/index.html可以到solr的后台做一些配置工作。
    下面说一下搭建过程中可能遇到的异常:
    1,启动tomcat时如果报下面的错误:
    严重: Exception starting filter SolrRequestFilter
    java.lang.NoClassDefFoundError: com/codahale/metrics/MetricSet
    at java.lang.Class.getDeclaredConstructors0(Native Method)
    at java.lang.Class.privateGetDeclaredConstructors(Class.java:2671)
    at java.lang.Class.getConstructor0(Class.java:3075)
    at java.lang.Class.newInstance(Class.java:412)
    at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:119)
    at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:258)
    at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:105)
    at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4700)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5340)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:753)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:729)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717)
    at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1092)
    at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1834)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
    Caused by: java.lang.ClassNotFoundException: com.codahale.metrics.MetricSet
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1333)
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1167)
    ... 20 more
    请把solr-6.4.1/server/lib下的metrics-core-3.1.2.jar,metrics-ganglia-3.1.2.jar,metrics-graphite-3.1.2.jar,metrics-jetty9-3.1.2.jar,metrics-jvm-3.1.2.jar这几个jar包放到tomcat下的solr项目的WEB-INF/lib目录下。这个异常是缺少jar包,具体哪个不清楚,没有把metrics开头的jar包一个一个地测试,有耐心的同学可以找一下具体哪个jar包。
    2,访问http://localhost:8080/solr/index.html时如果报下面的错误:
    HTTP Status 403 - Access to the requested resource has been denied
    把tomcat下的solr项目的web.xml文件中
     <security-constraint> 
     <web-resource-collection> 
     <web-resource-name>Disable TRACE</web-resource-name> 
     <url-pattern>/</url-pattern> 
     <http-method>TRACE</http-method> 
    </web-resource-collection> 
    <auth-constraint/> 
    </security-constraint> 
     <security-constraint> 
    <web-resource-collection> 
     <web-resource-name>Enable everything but TRACE</web-resource-name> 
     <url-pattern>/</url-pattern> 
    <http-method-omission>TRACE</http-method-omission> 
    </web-resource-collection> 
     </security-constraint> 
    这段注释掉。这段配置限制了对solr资源的访问,注释掉就可以访问了。
    最后解决掉上面的异常后,重启tomcat,访问http://localhost:8080/solr/index.html,不出意外会进入如下图的页面
    2017 03-22
    Elasticsearch是什么?
    ElasticSearch是一个基于Lucene的搜索服务器。
    Elasticsearch干什么用?
    它提供了一个分布式多用户能力的全文搜索引擎。
    Elasticsearch有什么好处?
    Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。
    Elasticsearch怎么用?(windows环境下)
    首先他是基于java环境的在安装它之前必须安装java环境,jdk保证是8,下载他自己的工具包(http://www.elasticsearch.org/download), 解压到指定目录,在命令窗口进入到解压后的bin目录下,双击elasticsearch.bat,出现类似下列图样.
    我们通过 浏览器里测试一下
     
     能出现这样的界面表示已经正常运行了
    elasticsearch  head 是集群管理工具、数据可视化、增删改查工具,我们安装head插件
    然后安装成功后,在浏览器中输入:http://localhost:9200/_plugin/head/,可以看到效果。
    我们了解下这个控制台的各部分
    我们看下数据浏览视图
    基本查询视图
    Elasticsearch有什么优缺点?
    优点:
    横向可扩展性:只需要增加一台服务器,做一点儿配置,启动一下ES进程就可以并入集群;
    分片机制提供更好的分布性:同一个索引分成多个分片(sharding),这点类似于HDFS的块机制;分而治之的方式来提升处理效率;
    高可用:提供复制(replica)机制,一个分片可以设置多个复制,使得某台服务器宕机的情况下,集群仍旧可以照常运行,并会把由于服务器宕机丢失的复制恢复到其它可用节点上.
    缺点:
    各节点的一致性问题:其默认的机制是通过多播机制,同步元数据信息,但是在比较繁忙的集群中,可能会由于网络的阻塞,或者节点处理能力达到饱和导致各节点元数据不一致——也就是所谓的脑裂问题,这样会使集群处于不一致状态。
    没有细致的权限管理机制,也就是说,没有像MySQL那样的分各种用户,每个用户又有不同的权限。所以在操作上的限制需要自己开发一个系统来完成;
    Elasticsearchjava中使用demo
    我们在eclipse中新建maven工程,在pom中引入我们的elasticsearch坐标
    这是我们项目中所需要的jar已经给我们下载下来了
    ES中所有的Java API调用都要使用Client对象,ES为API调用者提供了两类Client对象:NodeClient和TransportClient。下面来讲讲这两类Client的差异和使用场景。
    NodeClient是一种嵌入式节点客户端。它首先在客户端启动一个节点(Node),并加入同名集群内。这个节点可以保存数据,并且数据能够被索引。然后从这个节点中获取Client,这类Client就是NodeClient。NodeClient无需指明ES服务端的地址,操作的数据位于启动的节点所在的集群中。
    我们运行代码看下我们获取的client对象
    TransportClient连接远端的ES集群,其本身并不会加入集群。创建TransportClient的代码如下:
    TransportClient适合用于生产环境中
    针对索引的操作
    创建索引
    进行测试,出现true表示创建索引成功
    索引上新建mapping
    删除索引、
    对文档的增删改查
    新增文档
    更新文档
    更具id查询文档
    复杂查询,使用filter方式查询数据
    删除指定id的文档
    根据复杂的查询条件来删除文档
    使用min聚合查询某个字段上最小的值
     
  • 相关阅读:
    JS中常见的几种控制台台报错
    nssm常用命令(在Windows系统下安装服务的工具)
    Web前端浏览器默认样式重置(CSS Tools: Reset CSS)
    Layui的本地存储方法-Layui.data的基本使用
    JS事件冒泡与事件捕获怎么理解?
    解决Web开发HTML页面中footer保持在页面底部问题
    cpdetector获取文件编码
    maven
    jdom工具类
    httpclient4封装类
  • 原文地址:https://www.cnblogs.com/qiaoz/p/6651564.html
Copyright © 2011-2022 走看看