标签: solrcloud

当我使用SolrJ和SolrCloud时,为什么会得到"KeeperErrorCode = NoNode for /clusterstate.json"?

我已经下载了Solr 4.10.3,使用提供的设置运行服务器,我可以使用SolrJ(v.4.0.0)将文档插入其中,HttpSolrServer没有任何问题.但是当我尝试使用时,我无法插入任何文档CloudSolrServer.我已经阅读了官方文档,并尝试了以下内容:

SolrServer solr;
String zkHostString = "localhost:9983/solr";
solr = new CloudSolrServer(zkHostString);
Run Code Online (Sandbox Code Playgroud)

但是org.apache.zookeeper.KeeperException$NoNodeException: KeeperErrorCode = NoNode for /clusterstate.json当我尝试时,我得到了例外solr.add(document);:

2015-03-31 11:00:18 INFO  HttpClientUtil:102 - Creating new http client, config:
2015-03-31 11:00:18 INFO  ZooKeeper:100 - Client environment:zookeeper.version=3.4.5-1392090, built on 09/30/2012 17:52 GMT
2015-03-31 11:00:18 INFO  ZooKeeper:100 - Client environment:host.name=emre-ubuntu
2015-03-31 11:00:18 INFO  ZooKeeper:100 - Client environment:java.version=1.8.0_25
2015-03-31 11:00:18 INFO  ZooKeeper:100 - Client environment:java.vendor=Oracle Corporation
2015-03-31 11:00:18 INFO  ZooKeeper:100 - Client environment:java.home=/usr/lib/jvm/java-8-oracle/jre
2015-03-31 11:00:18 INFO …
Run Code Online (Sandbox Code Playgroud)

solr solrj solrcloud apache-zookeeper

5
推荐指数
1
解决办法
6300
查看次数

由于第三方库的位置,启动Solr云时出错

我试图迁移到Solr 3.1,我的项目使用Dataimport处理程序,当我启动solr时它问我SolrCoreAwar未找到我将以下文件复制到lib目录apache-solr-dataimporthandler-3.1-SNAPSHOT.jar但是在说明时再次出现错误solr我需要解决这个问题,如果你可以帮助谢谢你

下一条消息是我在启动Solr 3.1时获得的异常

 java.lang.NoClassDefFoundError: Could not initialize class org.slf4j.LoggerFactory
    at org.apache.solr.handler.dataimport.DataImportHandler.<clinit>(DataImportHandler.java:72)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:264)
    at org.apache.solr.core.SolrResourceLoader.findClass(SolrResourceLoader.java:373)
    at org.apache.solr.core.SolrCore.createInstance(SolrCore.java:423)
    at org.apache.solr.core.SolrCore.createRequestHandler(SolrCore.java:459)
    at org.apache.solr.core.RequestHandlers.initHandlersFromConfig(RequestHandlers.java:154)
    at org.apache.solr.core.SolrCore.<init>(SolrCore.java:563)
    at org.apache.solr.core.CoreContainer.create(CoreContainer.java:458)
    at org.apache.solr.core.CoreContainer.load(CoreContainer.java:316)
    at org.apache.solr.core.CoreContainer.load(CoreContainer.java:207)
    at org.apache.solr.core.CoreContainer$Initializer.initialize(CoreContainer.java:130)
    at org.apache.solr.servlet.SolrDispatchFilter.init(SolrDispatchFilter.java:94)
    at org.mortbay.jetty.servlet.FilterHolder.doStart(FilterHolder.java:97)
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
    at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:713)
    at org.mortbay.jetty.servlet.Context.startContext(Context.java:140)
    at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1282)
    at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:518)
    at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:499)
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
    at org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:152)
    at org.mortbay.jetty.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:156)
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
    at org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:152)
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
    at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
    at org.mortbay.jetty.Server.doStart(Server.java:224)
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
    at org.mortbay.xml.XmlConfiguration.main(XmlConfiguration.java:985)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:616) …
Run Code Online (Sandbox Code Playgroud)

solr exception classpath solrcloud

4
推荐指数
1
解决办法
1万
查看次数

AWS EC2计算机上的Solrcloud配置

我在AWS EC2机器上设置SolrCloud时遇到问题.场景如下,

我有三台服务器用于zookeeper和solr.

每个服务器上都运行着zookeeper.当我使用zookeeper主机信息启动Solr时,它会按预期启动并运行.

问题是动物园管理员在生成集群信息时使用服务器的私有ip,因此我无法使用无法识别私有IP的Solrj来查询它.例如server1.私有IP ip-a,b,c,d公共IP:u,v,w,x zookeeper通过私有IP识别solr实例(显然从外部EC2机器上看不到)

The cluster information looks something like this:
live nodes:[10.165.15.104:8983_solr] collections:{vicon=DocCollection(vicon)={
  "shards":{"shard1":{
      "range":"80000000-7fffffff",
      "state":"active",
      "replicas":{"10.165.15.104:8983_solr_vicon":{
          "shard":"shard1",
          "state":"down",
          "core":"vicon",
          "collection":"vicon",
          "node_name":"10.165.15.104:8983_solr",
          "base_url":"http://10.165.15.104:8983/solr",
          "leader":"true"}}}},
  "router":"compositeId"}, collection1=DocCollection(collection1)={
  "shards":{"shard1":{
      "range":"80000000-7fffffff",
      "state":"active",
      "replicas":{"10.165.15.104:8983_solr_collection1":{
          "shard":"shard1",
          "state":"down",
          "core":"collection1",
          "collection":"collection1",
          "node_name":"10.165.15.104:8983_solr",
          "base_url":"http://10.165.15.104:8983/solr",
          "leader":"true"}}}},
  "router":"compositeId"}, collections=DocCollection(collections)={
  "shards":{"shard1":{
      "range":"80000000-7fffffff",
      "state":"active",
      "replicas":{
        "10.165.15.104:8983_solr_collections":{
          "shard":"shard1",
          "state":"active",
          "core":"collections",
          "collection":"collections",
          "node_name":"10.165.15.104:8983_solr",
          "base_url":"http://10.165.15.104:8983/solr",
          "leader":"true"},
        "10.147.129.56:8983_solr_collections":{
          "shard":"shard1",
          "state":"down",
          "core":"collections",
          "collection":"collections",
          "node_name":"10.147.129.56:8983_solr",
          "base_url":"http://10.147.129.56:8983/solr"}}}},
  "router":"compositeId"}}
Run Code Online (Sandbox Code Playgroud)

实时节点IP是私有IP而不是公共IP

有没有什么方法可以让zookeeper将集群信息存储为主机名而不是ip.如果无法做到这一点,我如何在AWS EC2机器上运行solr Cloud?

solr amazon-ec2 amazon-web-services solrcloud apache-zookeeper

4
推荐指数
1
解决办法
1531
查看次数

在solr中对文本字段进行排序

我正在使用 solr 3.4 并希望在文本字段上对 solr 搜索结果进行排序。如何像 int 自然排序一样实现对文本字段的排序?

有什么方法可以在查询期间将文本字段转换为 int 吗?

我的排序字段是字符串类型,我希望它在排序时表现得像 int 字段。我无法更改字段类型,因为索引大小太大且无法重新索引。

知道我怎么能做到这一点吗?

sorting solr solrcloud

4
推荐指数
1
解决办法
7529
查看次数

SolrCloud:是否可以在搜索结果中获取文档的分片ID

在SolrCloud中调试Solr模式和索引时,很容易知道文档被索引到哪个分片.是否可以为分片ID定义架构字段,以便在搜索结果中可以使用自动分配的分片ID?

solr sharding solrcloud

4
推荐指数
1
解决办法
687
查看次数

CloudSolrServer:找不到集合:入门

尝试使用 CloudSolrServer 在 SolrCloud 上上传文档时出现以下异常。

Exception in thread "main" org.apache.solr.common.SolrException: Could not find collection : gettingstarted
    at org.apache.solr.common.cloud.ClusterState.getCollection(ClusterState.java:162)
    at org.apache.solr.client.solrj.impl.CloudSolrServer.directUpdate(CloudSolrServer.java:305)
    at org.apache.solr.client.solrj.impl.CloudSolrServer.request(CloudSolrServer.java:533)
    at org.apache.solr.client.solrj.request.AbstractUpdateRequest.process(AbstractUpdateRequest.java:124)
    at org.apache.solr.client.solrj.SolrServer.add(SolrServer.java:116)
    at org.apache.solr.client.solrj.SolrServer.add(SolrServer.java:102)
    at Test.addDocumentSolrCloud(Test.java:265)
    at Test.main(Test.java:284)
Run Code Online (Sandbox Code Playgroud)

该集合存在,我可以使用 Solr 管理员进行查询。并且还可以使用 HttpSolrServer 上传文档(单实例 - 非云模式)。

我正在使用以下代码片段

CloudSolrServer server = new CloudSolrServer("localhost:2181");
            server.setDefaultCollection("gettingstarted");
            SolrInputDocument doc = new SolrInputDocument();
            doc.addField("id", id);
            doc.addField("name", name);

            server.add(doc);

            server.commit();
Run Code Online (Sandbox Code Playgroud)

不知道我错过了什么。我的 Zookeeper 在外部运行在两个 solr 云节点的同一台机器上

java solr solrj solrcloud

4
推荐指数
1
解决办法
3884
查看次数

Solr Replication和Solr Cloud有什么区别?

我支持rails项目,它包含rails app和Solr的附加实例.

我的环境:rails 3.2.1,ruby 2.1.2,sunspot 2.1.0,Solr 4.1.6.

问题:

Clould提供商不稳定.我不能使用其他云提供商 - 这是客户的需求.通常,搜索服务器继续维护,Web应用程序停止生产.因此,我考虑如何制作2个相同的搜索服务器而不是一个,以使系统更稳定:如果一个服务器将关闭,其他服务器将继续工作.

摆脱困境的方法:

题:

  1. 怎么办?为什么?
  2. SolrCloud是更好的解决方案吗?
  3. 这些变体的PROC和CONS是什么?
  4. 在哪些情况下更好地应对SolrCloud?
  5. 在哪些情况下更好地处理Solr Replication?

replication solr sunspot-solr solrcloud solr4

4
推荐指数
1
解决办法
1042
查看次数

Solr:使用块连接子查询解析器

目前,我按照此处所述评估 Block Join Children Query Parser 。

因此,我创建了以下集合:

curl "http://localhost:8983/solr/admin/collections?action=CREATE&name=nestedPerson&numShards=6"`
Run Code Online (Sandbox Code Playgroud)

然后我插入了这两个文件:

curl http://localhost:8983/solr/nestedPerson/update?commitWithin=3000 -d '<add>
        <doc>
        <field name="id">p1</field>
        <field name="deceased">false</field>
        <doc>
            <field name="id">c1</field>
            <field name="firstName">Bob</field>
        </doc>
        </doc>
        <doc>
        <field name="id">p2</field>
        <field name="deceased">true</field>
        <doc>
            <field name="id">c2</field>
            <field name="firstName">Max</field>
        </doc>
        </doc>
    </add>'
Run Code Online (Sandbox Code Playgroud)

现在我发出这个查询:

{!child of="id:p1"}firstName:Bob
Run Code Online (Sandbox Code Playgroud)

不幸的是,这会导致此错误:

"msg": "Parent query yields document which is not matched by parents filter, docID=0",
Run Code Online (Sandbox Code Playgroud)

父查询(我猜是该部分id:p1的意思)如何生成与过滤器不匹配的文档?

java solr solrcloud

4
推荐指数
1
解决办法
4671
查看次数

SolrCloud与SSL和基本身份验证

是否可以使用SSL和基本身份验证配置SolrCloud?

我使用以下方法在SolrCloud中使用SSL配置了3个Solr节点:https://cwiki.apache.org/confluence/display/solr/Enabling+SSL

我在此之后添加了身份验证和授权:https: //cwiki.apache.org/confluence/display/solr/Basic+Authentication+Plugin,https://cwiki.apache.org/confluence/display/solr/Rule-基于+授权+插件

当只启用SSL时,它可以工作.

当只启用身份验证+授权时,它可以工作

当两者都启用时,我会在启动时获得以下堆栈跟踪:

2016-06-01 17:19:41.933 INFO  (OverseerStateUpdate-168013962670440512-172.30.92.66:8983_solr-n_0000000079) [   ] o.a.s.c.o.ZkStateWriter going to update_collection /collections/testowa/state.json version: 1350
2016-06-01 17:19:41.935 INFO  (zkCallback-4-thread-1-processing-n:172.30.92.66:8983_solr) [   ] o.a.s.c.c.ZkStateReader A cluster state change: [WatchedEvent state:SyncConnected type:NodeDataChanged path:/collections/testowa/state.json] for collection [testowa] has occurred - updating... (live nodes size: [3])
2016-06-01 17:19:41.937 INFO  (zkCallback-4-thread-1-processing-n:172.30.92.66:8983_solr) [   ] o.a.s.c.c.ZkStateReader Updating data for [testowa] from [1350] to [1351]
2016-06-01 17:19:43.557 INFO  (coreZkRegister-1-thread-1-processing-n:172.30.92.66:8983_solr x:testowa_shard1_replica3 s:shard1 c:testowa r:core_node1) [c:testowa s:shard1 r:core_node1 x:testowa_shard1_replica3] o.a.s.c.ShardLeaderElectionContext …
Run Code Online (Sandbox Code Playgroud)

ssl solr basic-authentication solrcloud solr4

4
推荐指数
1
解决办法
3027
查看次数

SolrCloud Configset API 上传返回 500“KeeperErrorCode = NoNode”

情况

首先,我必须提到我正在使用 Solr 8.1.1 并运行默认的“solr -e cloud”来进行一些测试。它在 Windows Azure VM 上运行。我正在尝试创建一个 PowerShell 脚本来在 SolrCloud 上进行一些设置。第一步是上传自定义配置集。我使用https://lucene.apache.org/solr/guide/8_1/configsets-api.html作为指南,如果您删除所有参数,则使用 PowerShell 命令,这样可以归结为以下内容:

Invoke-WebRequest -Uri "http://localhost:8983/solr/admin/configs?action=UPLOAD&name=MyConfig" -Method Post -ContentType "application/octet-stream" -InFile "config.zip"

编辑:为了清楚起见,ZIP 的内容如下: https: //i.stack.imgur.com/49huS.jpg

问题

然而,当我运行上述命令时,我遇到了以下错误:

Invoke-WebRequest : { "responseHeader":{ "status":500, "QTime":11}, "error":{ "msg":"KeeperErrorCode = NoNode for /configs/MyConfig/lang/contractions_ca.txt", "trace":"org.apache.zookeeper.KeeperException$NoNodeException: 
KeeperErrorCode = NoNode for /configs/MyConfig/lang/contractions_ca.txt\r\n\tat org.apache.zookeeper.KeeperException.create(KeeperException.java:114)\r\n\tat 
org.apache.zookeeper.KeeperException.create(KeeperException.java:54)\r\n\tat org.apache.zookeeper.ZooKeeper.create(ZooKeeper.java:792)\r\n\tat 
org.apache.solr.common.cloud.SolrZkClient.lambda$create$7(SolrZkClient.java:415)\r\n\tat org.apache.solr.common.cloud.ZkCmdExecutor.retryOperation(ZkCmdExecutor.java:71)\r\n\tat 
org.apache.solr.common.cloud.SolrZkClient.create(SolrZkClient.java:415)\r\n\tat org.apache.solr.handler.admin.ConfigSetsHandler.createZkNodeIfNotExistsAndSetData(ConfigSetsHandler.java:201)\r\n\tat 
org.apache.solr.handler.admin.ConfigSetsHandler.handleConfigUploadRequest(ConfigSetsHandler.java:181)\r\n\tat org.apache.solr.handler.admin.ConfigSetsHandler.handleRequestBody(ConfigSetsHandler.java:111)\r\n\tat 
org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:199)\r\n\tat org.apache.solr.servlet.HttpSolrCall.handleAdmin(HttpSolrCall.java:796)\r\n\tat 
org.apache.solr.servlet.HttpSolrCall.handleAdminRequest(HttpSolrCall.java:762)\r\n\tat org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:522)\r\n\tat 
org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:397)\r\n\tat org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:343)\r\n\tat 
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1602)\r\n\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:540)\r\n\tat 
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)\r\n\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)\r\n\tat 
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)\r\n\tat org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)\r\n\tat 
org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1588)\r\n\tat org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)\r\n\tat 
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1345)\r\n\tat org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)\r\n\tat 
org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:480)\r\n\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1557)\r\n\tat 
org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)\r\n\tat …
Run Code Online (Sandbox Code Playgroud)

powershell solrcloud

4
推荐指数
1
解决办法
859
查看次数