Solr 不拆分 JSON
Solr do not split JSON
我正在使用 Solr v8.0.0 并尝试使用 solr official documentation about Transforming JSON 中描述的方法在索引时拆分 json,但它没有按预期工作,我最后变得平坦 jsons。
这是我的做法:
首先我创建了一个名为 C2 的核心
bin/solr create_core -c c2
然后,它的 solrconfig.xml 会自动创建并保留为默认值。
然后我尝试使用示例 URL 来索引一些数据。唯一的区别是我在 URL 的末尾添加了一个 ?commit=true 这样我们就可以看到发生了什么
curl 'http://localhost:8983/solr/c2/update/json/docs'\
'?commit=true'\
'?split=/'\
'&f=first:/first'\
'&f=last:/last'\
'&f=grade:/grade'\
'&f=subject:/exams/subject'\
'&f=test:/exams/test'\
'&f=marks:/exams/marks'\
-H 'Content-type:application/json' -d '
{
"first": "John",
"last": "Doe",
"grade": 8,
"exams": [
{
"subject": "Maths",
"test" : "term1",
"marks" : 90},
{
"subject": "Biology",
"test" : "term1",
"marks" : 86}
]
}'
但最后,我得到了这种索引,而不是示例中显示的索引:
我得到了什么:
{
{
"first":["John"],
"last":["Doe"],
"grade":[8],
"subject":["Maths",
"Biology"],
"test":["term1",
"term1"],
"marks":[90,
86],
"id":"284878be-1339-43b5-8a1e-adb7a4be95fb",
"_version_":1664059760532520960}]
}
我应该得到的:
{
"first":"John",
"last":"Doe",
"marks":90,
"test":"term1",
"subject":"Maths",
"grade":8
}
{
"first":"John",
"last":"Doe",
"marks":86,
"test":"term1",
"subject":"Biology",
"grade":8
}
在 url 中没有 ?split=/
命令的情况下,我的字段在正常索引中通常会变平。谁能帮我弄清楚为什么会发生这种行为?
谢谢。
不,这不是唯一的区别。在您的请求中,您有:
'?split=/'\
手册中的例子是:
'?split=/exams'\
并且由于您在请求中没有拆分 /exams
,所以结果不同。
我正在使用 Solr v8.0.0 并尝试使用 solr official documentation about Transforming JSON 中描述的方法在索引时拆分 json,但它没有按预期工作,我最后变得平坦 jsons。
这是我的做法:
首先我创建了一个名为 C2 的核心
bin/solr create_core -c c2
然后,它的 solrconfig.xml 会自动创建并保留为默认值。
然后我尝试使用示例 URL 来索引一些数据。唯一的区别是我在 URL 的末尾添加了一个 ?commit=true 这样我们就可以看到发生了什么
curl 'http://localhost:8983/solr/c2/update/json/docs'\
'?commit=true'\
'?split=/'\
'&f=first:/first'\
'&f=last:/last'\
'&f=grade:/grade'\
'&f=subject:/exams/subject'\
'&f=test:/exams/test'\
'&f=marks:/exams/marks'\
-H 'Content-type:application/json' -d '
{
"first": "John",
"last": "Doe",
"grade": 8,
"exams": [
{
"subject": "Maths",
"test" : "term1",
"marks" : 90},
{
"subject": "Biology",
"test" : "term1",
"marks" : 86}
]
}'
但最后,我得到了这种索引,而不是示例中显示的索引:
我得到了什么:
{
{
"first":["John"],
"last":["Doe"],
"grade":[8],
"subject":["Maths",
"Biology"],
"test":["term1",
"term1"],
"marks":[90,
86],
"id":"284878be-1339-43b5-8a1e-adb7a4be95fb",
"_version_":1664059760532520960}]
}
我应该得到的:
{
"first":"John",
"last":"Doe",
"marks":90,
"test":"term1",
"subject":"Maths",
"grade":8
}
{
"first":"John",
"last":"Doe",
"marks":86,
"test":"term1",
"subject":"Biology",
"grade":8
}
在 url 中没有 ?split=/
命令的情况下,我的字段在正常索引中通常会变平。谁能帮我弄清楚为什么会发生这种行为?
谢谢。
不,这不是唯一的区别。在您的请求中,您有:
'?split=/'\
手册中的例子是:
'?split=/exams'\
并且由于您在请求中没有拆分 /exams
,所以结果不同。