我正在使用solr從cassandra表中檢索結果。solr不提取動態字段
表結構:
CREATE TABLE mytable (
field1 uuid,
field2 text ,
bfield blob,
cstdta_<text, text>,
PRIMARY KEY (field1)
);
表內容
INSERT INTO mytable VALUES (62c36092-82a1-3a00-93d1-46196ee77204,"test", { 'f1' : 'La Vita E La Felicita', 'f2' : 'Michele Bravi' });
我能夠直接查詢使用devcenter時,檢索結果。但是在使用solr查詢時,不會返回動態字段。
Solr的查詢響應:
{
"responseHeader": {
"status": 0,
"QTime": 1
},
"response": {
"numFound": 1,
"start": 0,
"docs": [
{
"field1": "62c36092-82a1-3a00-93d1-46196ee77204",
"field2": "test"
}
]
}
}
這裏是scheme.xml文件:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<schema name="autoSolrSchema" version="1.5">
<types>
<fieldType class="org.apache.solr.schema.TextField" name="TextField">
<analyzer>
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
<fieldType class="org.apache.solr.schema.UUIDField" name="UUIDField"/>
<fieldType class="org.apache.solr.schema.BinaryField" name="BinaryField"/>
</types>
<fields>
<field indexed="true" multiValued="false" name="field1" stored="true" type="TextField"/>
<field indexed="true" multiValued="false" name="field2" stored="true" type="TextField"/>
<field indexed="true" multiValued="false" name="bfield" stored="true" type="BinaryField"/>
<dynamicField indexed="true" multiValued="false" name="cstdta_*" stored="true" type="TextField"/>
<field indexed="true" multiValued="false" name="cstdta_stc" stored="true" type="TextField"/>
<copyField source="cstdta_*" dest="cstdta_stc"/>
</fields>
<uniqueKey>resid</uniqueKey>
</schema>
我添加了複印場以下this answer。但它似乎並不奏效。
UPDATE:
由於user3398164指出我需要在一個特定的格式插入動態領域的CustomData內。就我而言,我不得不使用此查詢插入:
INSERT INTO mytable VALUES (62c36092-82a1-3a00-93d1-46196ee77204,"test", { 'cstdtaf1' : 'La Vita E La Felicita', 'cstdtaf2' : 'Michele Bravi' });
現在我得到了想要的結果:
{
"responseHeader": {
"status": 0,
"QTime": 1
},
"response": {
"numFound": 1,
"start": 0,
"docs": [
{
"field1": "62c36092-82a1-3a00-93d1-46196ee77204",
"field2": "test",
"cstdtaf1":"La Vita E La Felicita",
"cstdtaf2" : "Michele Bravi"
}
]
}
}
與此 –
@AbhijitBashetti,這是一個錯字。編輯問題 – Sharun
爲什麼multiValued =「false」表示字段cstdta_stc ...?multiValued = true | false 如果此字段可能包含每個文檔的多個值(即,它在文檔中可能出現多次),則爲true –