2015-09-13 74 views
0

我有一個與在Datastax上創建的表相關的solr模式。我知道包含整個文檔的datastax是這樣的,我創建了solr模式而不在其上存儲字段,只有存儲的字段是ID字段。從solr api和datastax檢索文檔

我們使用CQL使用「solr_query」從datastax檢索文檔。但是,如果字段沒有存儲,我可以直接從solr API檢索文檔嗎?

UPDATE 1

//創建密鑰空間

CREATE具有複製= KEYSPACE mykeyspace { '類': 'NetworkTopologyStrategy', '卡桑德拉':3 '的Solr':2};

//創建表

創建表MYTABLE( ID UUID ,名稱文本 ,說明文字 ,主鍵(ID,姓名) );

//架構字段

<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

捲曲本地主機:8983/solr的/資源/ mykeyspace.mytable/solrconfig.xml中--data二進制@solrconfig .xml -H'Content-type:text/xml; charset = utf-8'

curl localhost:8983/solr/resource/mykeyspace.mytable/schema.xml --data-binary @ schema.xml -H'Content-type:text/xml;字符集= UTF-8'

//創建集合

捲曲 「本地主機:8983/Solr的/管理/內核行動=創建&名= mykeyspace.mytable」

+0

您正在使用DSE正確嗎?是的,你仍然可以拉非索引字段,你只是不能過濾它們。 – phact

+0

我已經在使用DSE。我可以使用CQL和使用CQL中的「solr_query」過濾索引字段。但是我們無法使用Solr API提取文檔。 –

回答

0

我已將字段更改爲STORED並使用默認的「/ select」處理程序

0

我們使用定製列表來使用「solr_query」從datastax中檢索文檔。但是,如果字段沒有存儲,我可以直接從solr API檢索文檔嗎?

DSE搜索總是存儲列/字段值在卡桑德拉,而不管架構stored屬性(有一些例外的記錄),所以回答你的問題是同時使用定製列表和HTTP Solr的是,你可以檢索文檔API,但請記住,大多數情況下前者應該是首選。

+0

謝謝@sbtourist。你會告訴我如何通過Solr API檢索存儲的值嗎? –

+0

只需使用標準的Solr查詢語法,即:http://yonik.com/solr/query-syntax。或者如果你想使用Solr Java客戶端:https://cwiki.apache.org/confluence/display/solr/Using+SolrJ – sbtourist

+0

不幸的是,「查詢」請求處理程序不可用,當使用默認處理程序「選擇」它返回僅限ID。有沒有一個簡單的步驟來做到這一點?Solr或Datastax上有特定的配置來達到目標​​嗎? –