私はsolrを使用してcassandraテーブルから結果を取得しています。solr selectクエリの動的フィールドのタイトルを変更します。
表構造:
CREATE TABLE mytable (
field1 uuid,
field2 text ,
bfield blob,
custmdata_<text, text>,
PRIMARY KEY (field1)
);
表の内容
INSERT INTO mytable VALUES (62c36092-82a1-3a00-93d1-46196ee77204,"test1", { 'custmdata_data1' : 'data1value', 'custmdata_data2' : 'data2value' });
INSERT INTO mytable VALUES (e26690db-dd54-4b61-b002-d3c07125f359,"test2", { 'custmdata_data5' : 'data5value', 'custmdata_data1' : 'mydata1value' });
私はSolrのクエリを使用して結果を取得することができています。
{
"responseHeader": {
"status": 0,
"QTime": 1
},
"response": {
"numFound": 2,
"start": 0,
"docs": [
{
"field1": "62c36092-82a1-3a00-93d1-46196ee77204",
"field2": "test1",
"custmdata_data1":"data1value",
"custmdata_data2" : "data2value"
},
{
"field1": "e26690db-dd54-4b61-b002-d3c07125f359",
"field2": "test2",
"custmdata_data5":"data5value",
"custmdata_data1" : "mydata1value"
}
]
}
}
フィールド名をプレフィックスなしで取得できるように、結果にフィールド名を指定する方法はありますか?私は、こと
回避または動的なフィールドの使用を制限した、datastax documentaionから :
{ "responseHeader": { "status": 0, "QTime": 1 }, "response": { "numFound": 2, "start": 0, "docs": [ { "field1": "62c36092-82a1-3a00-93d1-46196ee77204", "field2": "test1", "data1":"data1value", "data2" : "data2value" }, { "field1": "e26690db-dd54-4b61-b002-d3c07125f359", "field2": "test2", "data5":"data5value", "data1" : "mydata1value" } ] } }
アップデート:私はこのような結果が必要です。 Luceneはそれぞれ のメモリに一意のフィールド(列)名を割り当てるため、列A、列番号が B、C、B、D、Eの行がある場合、Luceneは という5つのチャンクを割り当てます。数百万行の場合、ヒープは扱いにくいです。
したがって、Solrで動的フィールドベースのフィルタリングを実現するには、より良い方法がありますか?私が必要とするのは、挿入ごとに異なる可能性のあるカスタムフィールドに対してフィルタをかけることです。
data1、data2などを例として使用しました。それは "ファイル名"、 "温度"のようなものを使用することができます。あなたの最初のアドバイスに従うことができません。 – Sharun