Solr:curl命令,用于添加新的多术语同义词

Solr:curl命令,用于添加新的多术语同义词,curl,solr,retrieve-and-rank,watson,Curl,Solr,Retrieve And Rank,Watson,我们正在尝试将新的同义词作为托管资源创建/上载到Solr。当我们创造多术语同义词时,例如“美利坚合众国”或“蜘蛛侠”,我们面临着一些问题。 Solr文档提供了一个针对单术语同义词的curl命令示例,但没有针对多术语的curl命令示例 我们尝试了以下命令和一些变体: (一) (二) (三) 对于这三个,我们得到了以下错误: (一) curl:(3)[globbing]第5列中不匹配的右括号/方括号 (二) (三) 在我们尝试从json文件成功创建它们之后;我们使用了以下curl命令: (四) 同义

我们正在尝试将新的同义词作为托管资源创建/上载到Solr。当我们创造多术语同义词时,例如“美利坚合众国”或“蜘蛛侠”,我们面临着一些问题。 Solr文档提供了一个针对单术语同义词的curl命令示例,但没有针对多术语的curl命令示例

我们尝试了以下命令和一些变体:

(一)

(二)

(三)

对于这三个,我们得到了以下错误:

(一)

curl:(3)[globbing]第5列中不匹配的右括号/方括号

(二)

(三)

在我们尝试从json文件成功创建它们之后;我们使用了以下curl命令:

(四)

同义词_test.json具有:

["USA","United States of America"]
在我们尝试扩展此“变通方法”之后,因为我们需要创建/上传数千个同义词到现有集合。然后我们决定用数组数组(一个有效的json内容)填充json文件:

结果是:

(四)

你知道怎么解决这个问题吗

问候,, DM

根据以下示例

curl -X PUT -H 'Content-type:application/json' --data-binary '["funny", "entertaining", "whimiscal", "jocular"]' "http://localhost:8983/solr/techproducts/schema/analysis/synonyms/english"
这与您的第2个示例相同,只是您使用的是POST not PUT。尝试使用PUT,看看是否有帮助

而且

无效,因为您只能放置字符串数组。要添加多个对称同义词组,必须对每个数组执行一次调用。

根据示例,示例如下

curl -X PUT -H 'Content-type:application/json' --data-binary '["funny", "entertaining", "whimiscal", "jocular"]' "http://localhost:8983/solr/techproducts/schema/analysis/synonyms/english"
这与您的第2个示例相同,只是您使用的是POST not PUT。尝试使用PUT,看看是否有帮助

而且


无效,因为您只能放置字符串数组。要添加多个对称同义词组,您必须对每个数组执行一次调用。

运行下面的命令将允许添加停止字

curl -X PUT -H 'Content-type:application/json' --data-binary \
 '{"class":"org.apache.solr.rest.schema.analysis.ManagedWordSetResource"}' \
 "http://localhost:8983/solr/techproducts/schema/analysis/stopwords/english"

运行下面的命令将允许添加停止字

curl -X PUT -H 'Content-type:application/json' --data-binary \
 '{"class":"org.apache.solr.rest.schema.analysis.ManagedWordSetResource"}' \
 "http://localhost:8983/solr/techproducts/schema/analysis/stopwords/english"

嗨,安德鲁!我们尝试了你的两个建议,但没有人奏效。请注意,命令
curl-xpost-H“Content-type:application/json”--二进制数据“[“欧元”、“欧元”]”
运行良好!试着用数据而不是二进制数据怎么样?嗨,安德鲁!只有--data(而不是--data二进制)我们得到了与1)和3)相同的错误!我们尝试了你的两个建议,但没有人奏效。请注意,命令
curl-xpost-H“Content-type:application/json”--二进制数据“[“欧元”、“欧元”]”
运行良好!试着用数据而不是二进制数据怎么样?嗨,安德鲁!仅使用--data(而不是--data二进制),我们得到了与1)和3)相同的错误。
{
  "responseHeader": {
    "status": 500,
    "QTime": 2
  },
  "error": {
    "msg": "Expected ',' or ']': char=P,position=18 BEFORE='[[ARS,Argentinian P' AFTER='eso]]'",
    "trace": "org.noggit.JSONParser$ParseException: Expected ',' or ']': char=P,position=18 BEFORE='[[ARS,Argentinian P' AFTER='eso]]'\n\tat org.noggit.JSONParser.err(JSONParser.java:356)...",
    "code": 500
  }
}
curl -X POST -H "Content-type:application/json" ... --data-binary @synonyms_test.json
["USA","United States of America"]
[["aaa", "aaa1"],["bbb", "bbb1"]]
{
  "responseHeader": {
    "status": 500,
    "QTime": 2
  },
  "error": {
    "msg": "java.util.ArrayList cannot be cast to java.lang.String",
    "trace": "java.lang.ClassCastException: java.util.ArrayList cannot be cast to java.lang.String ...",
    "code": 500
  }
}
curl -X PUT -H 'Content-type:application/json' --data-binary '["funny", "entertaining", "whimiscal", "jocular"]' "http://localhost:8983/solr/techproducts/schema/analysis/synonyms/english"
[["aaa", "aaa1"],["bbb", "bbb1"]]
curl -X PUT -H 'Content-type:application/json' --data-binary \
 '{"class":"org.apache.solr.rest.schema.analysis.ManagedWordSetResource"}' \
 "http://localhost:8983/solr/techproducts/schema/analysis/stopwords/english"