首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Solr结果分组错误.Unexpected文档类型为SORTED_SET字段‘供应商’(expected=SORTED)

Solr结果分组错误.Unexpected文档类型为SORTED_SET字段‘供应商’(expected=SORTED)
EN

Stack Overflow用户
提问于 2015-05-20 10:54:44
回答 2查看 11.5K关注 0票数 3

我有这样一个solr模式

代码语言:javascript
复制
<fields>
   <field name="id" type="string" indexed="false" stored="true" required="true" />  
   <field name="product" type="string" indexed="true" stored="true" required="true" /> 
   <field name="vendor" type="string" indexed="true" stored="true" required="true" /> 
   <field name="language" type="string" indexed="true" stored="true" required="true" /> 
   <field name="TotalInvoices" type="float" indexed="true" stored="true" required="true"/> 
</fields>   

我正在查询模式,结果如下

代码语言:javascript
复制
product,Vendor,Invoice
abc,vendor1,49206.75999999998
abc,vendor2,35654.98000000001
abc,vendor2,94861.25999999998
abc,vendor3,990.9600000000012
abc,vendor3,990.9600000000012
abc,vendor3,990.960000000001

我想将结果按供应商字段分组,所以我发布了如下查询

代码语言:javascript
复制
http://localhost:8983/solr/gettingstarted_shard2_replica2/select?q=abc
&fl=product%2Cvendor%2CTotalInvoices
&wt=json
&indent=true
&debugQuery=true
&group=true
&group.field=vendor

我在调试字段中得到了一个错误。

“"msg":"org.apache.solr.client.solrj.SolrServerException:”:{无法处理此请求的活动SolrServers:replica2]“,"trace":"org.apache.solr.common.SolrException: org.apache.solr.client.solrj.SolrServerException:无法处理此请求:replica2]\n\tat org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:342)\n\tat org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:143)\n\tat org.apache.solr.core.SolrCore.execute(SolrCore.java:1984)\n\tatorg.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:829)\n\tat org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:446)\n\tat org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:220)\n\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1419)\n\tat org.eclipse.jetty.servlets.CrossOriginFilter.handle(CrossOriginFilter.java:247)\n\tat org.eclipse.jetty.servlets.CrossOriginFilter.doFilter(CrossOriginFilter.java:210)\n\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1419)\n\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:455)\n\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)\n\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557)\n\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)\n\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1075)\n\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:384)\n\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)\n\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1009)\n\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)\n\tat org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255)\n\tat org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154)\n\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)\n\tat org.eclipse.jetty.server.Server.handle(Server.java:368)\n\tat.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489)\n\tat org.eclipse.jetty.server.BlockingHttpConnection.handleRequest(BlockingHttpConnection.java:53)\n\tat org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:942)\n\tat org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1004)\n\tat org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:640)\n\tat org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)\n\tat org.eclipse.jetty.server.BlockingHttpConnection.handle(BlockingHttpConnection.java:72)\n\tat org.eclipse.jetty.server.bio.SocketConnector$ConnectorEndPoint.run(SocketConnector.java:264)\n\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)\n\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)\n\tat java.lang.Threadorg.apache.solr.client.solrj.SolrServerException:(Thread.java:745)\n因:没有可用的live来处理此请求:replica2]\n\tat org.apache.solr.client.solrj.impl.LBHttpSolrClient.request(LBHttpSolrClient.java:349)\n\tat org.apache.solr.handler.component.HttpShardHandlerFactory.makeLoadBalancedRequest(HttpShardHandlerFactory.java:226)\n\tat org.apache.solr.handler.component.HttpShardHandler$1.call(HttpShardHandler.java:224)\n\tat org.apache.solr.handler.component.HttpShardHandler$1.call(HttpShardHandler.java:184)\n\tat java.util.concurrent.FutureTask.run(FutureTask.java:262)\n\tat java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)\n\tat java.util.concurrent.FutureTask.run(FutureTask.java:262)\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)\n.1\n由: org.apache.solr.client.solrj.impl.HttpSolrClient$RemoteSolrException: Error at replica2:意外的docvalue类型为字段‘供应商’(expected=SORTED)引起的\n原因。在docvalue中使用UninvertingReader或索引。\n\tat org.apache.solr.client.solrj.impl.HttpSolrClient.request(HttpSolrClient.java:233)\n\tat org.apache.solr.client.solrj.impl.HttpSolrClient.request(HttpSolrClient.java:225)\n\tat org.apache.solr.client.solrj.impl.LBHttpSolrClient.doRequest(LBHttpSolrClient.java:370)\n\tatorg.apache.solr.client.solrj.impl.LBHttpSolrClient.request(LBHttpSolrClient.java:338)\n\t...9 more\n,“code”:500}

请帮帮我。

EN

回答 2

Stack Overflow用户

发布于 2017-07-19 03:38:07

在对字段“ViewCount”进行排序时,我遇到了同样的问题:

代码语言:javascript
复制
 unexpected docvalues type SORTED_SET for field 'ViewCount' (expected=SORTED) ...

错误理解:来自这里

代码语言:javascript
复制
Any Trie* numeric fields, date fields and EnumField.`enter code here`
If the field is single-valued (i.e., multi-valued is false), Lucene will use the NUMERIC type.
If the field is multi-valued, Lucene will use the SORTED_SET type. 

看起来这个错误是由字段"ViewCount“的”多值“属性引起的。此外,作为文档,字段的“索引”属性必须是真的。

我有一个核心名字“大数据”。

我的解决方案:

  • 删除“大数据”中的所有文件 curl http://localhost:8983/solr/bigdata/update --数据‘-H’内容-类型:text/xml;charset=utf-8‘curl http://localhost:8983/solr/bigdata/update -数据’-H‘内容-类型:text/xml;charset=utf-8’-H-8‘
  • 将字段更改为long(或任何非多值类型)并进行索引 curl -X POST -H 'Content-type:application/json‘--数据-二进制'{“替换-字段’:{”名称“:”ViewCount“,”类型“:”long“,"multiValued":false,"indexed":true,”存储“:true }‘http://localhost:8983/solr/bigdata/schema
  • 重新加载“大数据” http://localhost:8983/solr/admin/cores?action=RELOAD&core=bigdata
  • 再次将数据导入“大数据”
  • 重新加载“大数据” http://localhost:8983/solr/admin/cores?action=RELOAD&core=bigdata

Issue1:删除所有的文档,可能会给某人带来痛苦。我尝试了上面的步骤,没有删除和重新导入所有的文档,但没有工作。看来这就是Crypt所经历的。

Issue2:如果你使用无缝模式。我的意思是,您不需要手动编辑模式,您需要在重新导入数据之前在"solrconfig.xml“中设置不可变的模式。相关的文档是这里

票数 2
EN

Stack Overflow用户

发布于 2020-01-09 13:15:20

使特定字段的indexed=“真”(如果为false);

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30347597

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档