从solr api和datastax检索文档
我有一个与Datastax上创建的表相关的solr模式。我知道datastax包含整个文档,因此,我创建了solr模式,没有在其上存储字段,只有存储的字段是ID字段 我们使用CQL使用“solr_query”从datastax检索文档。但是,如果字段未存储,我可以直接从solr API检索文档吗 更新1 //创建键空间 创建键空间mykeyspace WITH REPLICATION={'class':'NetworkTopologyStrategy','Cassandra':3,'Solr':2} //创建表 创建表mytable( id uuid ,名称文本 ,说明文字 ,主键(id,名称) ); //模式字段从solr api和datastax检索文档,solr,cassandra,datastax,Solr,Cassandra,Datastax,我有一个与Datastax上创建的表相关的solr模式。我知道datastax包含整个文档,因此,我创建了solr模式,没有在其上存储字段,只有存储的字段是ID字段 我们使用CQL使用“solr_query”从datastax检索文档。但是,如果字段未存储,我可以直接从solr API检索文档吗 更新1 //创建键空间 创建键空间mykeyspace WITH REPLICATION={'class':'NetworkTopologyStrategy','Cassandra':3,'Solr':
<field name="id" type="uuid" indexed="true" stored="true" multiValued="false" omitNorms="true" termVectors="true" termPositions="true" termOffsets="true" />
<field name="name" type="text_general" indexed="true" stored="false" multiValued="false" omitNorms="true" termVectors="true" termPositions="true" termOffsets="true" />
<field name="description" type="text_general" indexed="true" stored="false" multiValued="false" omitNorms="true" termVectors="true" termPositions="true" termOffsets="true" />
//将配置上载到solr的命令
curl localhost:8983/solr/resource/mykeyspace.mytable/solrconfig.xml--data binary@solrconfig.xml-H'内容类型:text/xml;字符集=utf-8'
curl localhost:8983/solr/resource/mykeyspace.mytable/schema.xml--data binary@schema.xml-H'内容类型:text/xml;字符集=utf-8'
//创建集合
curl“localhost:8983/solr/admin/cores?action=CREATE&name=mykeyspace.mytable”
我们使用CQL使用“solr_query”从datastax检索文档。但是,如果字段未存储,我可以直接从solr API检索文档吗
DSE Search始终将列/字段值存储在Cassandra中,而不考虑模式
存储的
属性(文档中有一些例外),因此您的问题的答案是肯定的,您可以使用CQL和HTTP Solr API检索文档,但请记住,前者应该是首选的,因为在大多数情况下速度更快。我已将字段更改为存储并使用默认的“/select”处理程序。您使用的是DSE,对吗?是的,你仍然可以提取非索引字段,只是不能按它们过滤。我已经在使用DSE了。我可以使用CQL进行拉取,并使用CQL中的“solr_query”过滤索引字段。但我们无法使用Solr API提取文档。谢谢@sbtourism。您能告诉我如何通过SolrAPI检索存储的值吗?只需使用标准的Solr查询语法,即:。或者如果您想使用SolrJava客户机:不幸的是,“查询”请求处理程序不可用,当使用默认处理程序“选择”时,它只返回ID。有没有直接的步骤可以做到这一点?Solr或Datastax上是否有实现thast的特定配置?请发布有关如何创建和配置表和索引的完整说明。