Solr 从多值中删除引号或立即更新
Solr remove quotes from multivalued value or update at once
我使用 CURL 命令将数据索引到我的 SOLR 核心,其中数据位于 CSV 格式。命令是 curl 'http://localhost:8983/solr/my_collection/update?commit=true' --data-binary @my_docs.csv -H 'Content-type:application/csv'
数据导入成功,但 multiValued 字段出现问题。
在我的 .csv 文件中,multiValued 字段的值是这样的 "['parking','garden','spa']"
所以现在我的 solr 核心上导入的数据看起来像以下格式的额外双引号。
"amenities": [
"['parking', 'garden', 'spa']"
^ ^
]
要从我的 multiValued 字段中删除 双引号 我已经从 SOLR ADMIN [=52 的文档部分尝试过这种方式=] 部分,我成功地使用 JSON
这种格式进行了原子更新
{
"id":"2118506",
"amenities":{"set":["parking", "garden", "spa""]},
}
我知道我可以通过使用 SET 在 solr 上发送 curl 请求来使用这种方式原子更新所有索引文档,但目前这对我来说很难,因为我已经20M 文档已编入索引。
所以我现在只想知道有什么方法可以在查询时从 multiValued 字段中删除双引号,或者有任何更智能的方法从字段中删除双引号使用单个 curl 命令的值 未指定单个文档 ID
N.B 我现在很难从每个 csv 文件中删除双引号并尝试重新索引文档
双引号的原因是因为您的值被索引为字符串 - 它没有被索引为多值字段。双引号在那里,因为这就是 JSON 表示我们正在谈论字符串的方式。
您需要在索引数据时更改此设置,您可以 use a few special arguments when indexing CSV:
f.amenities.split=true&f.amenities.separator=%2C
这样,通过从 ,
上的字段中拆分值,这些值将被索引为实际的多值字段。如果您的 CSV 文件中有实际的 JSON 列表,我强烈建议您从字段中删除 [
、'
和 ]
作为预处理步骤。
我使用 CURL 命令将数据索引到我的 SOLR 核心,其中数据位于 CSV 格式。命令是 curl 'http://localhost:8983/solr/my_collection/update?commit=true' --data-binary @my_docs.csv -H 'Content-type:application/csv'
数据导入成功,但 multiValued 字段出现问题。
在我的 .csv 文件中,multiValued 字段的值是这样的 "['parking','garden','spa']"
所以现在我的 solr 核心上导入的数据看起来像以下格式的额外双引号。
"amenities": [
"['parking', 'garden', 'spa']"
^ ^
]
要从我的 multiValued 字段中删除 双引号 我已经从 SOLR ADMIN [=52 的文档部分尝试过这种方式=] 部分,我成功地使用 JSON
这种格式进行了原子更新{
"id":"2118506",
"amenities":{"set":["parking", "garden", "spa""]},
}
我知道我可以通过使用 SET 在 solr 上发送 curl 请求来使用这种方式原子更新所有索引文档,但目前这对我来说很难,因为我已经20M 文档已编入索引。
所以我现在只想知道有什么方法可以在查询时从 multiValued 字段中删除双引号,或者有任何更智能的方法从字段中删除双引号使用单个 curl 命令的值 未指定单个文档 ID
N.B 我现在很难从每个 csv 文件中删除双引号并尝试重新索引文档
双引号的原因是因为您的值被索引为字符串 - 它没有被索引为多值字段。双引号在那里,因为这就是 JSON 表示我们正在谈论字符串的方式。
您需要在索引数据时更改此设置,您可以 use a few special arguments when indexing CSV:
f.amenities.split=true&f.amenities.separator=%2C
这样,通过从 ,
上的字段中拆分值,这些值将被索引为实际的多值字段。如果您的 CSV 文件中有实际的 JSON 列表,我强烈建议您从字段中删除 [
、'
和 ]
作为预处理步骤。