Solr将_version_
字段(用于开放式并发)的值作为整数返回。在返回的文档上执行JSON.parse()
时,_version_
数字将被舍入,因为该数字太大,无法在JavaScript中表示。
我如何强制solr返回字符串形式的_version_
呢?在客户端做一些技巧来避免这个问题也是可能的,但是我不希望一开始就产生一个太大的数字的问题。我使用的是Solr 8.8。
谢谢
UPDATE:我正在使用node发出GET请求。从string到json的转换是由json()
函数完成的。
static async documentWithId(id:string){
let url = 'someurlq=id%3A'+id;
let rawResponse = await fetch(url, {
method: 'GET', // or 'PUT',
});
if(rawResponse.status == 200){
let jsonResponse = await rawResponse.json();
if(jsonResponse.response.numFound){
return {document: jsonResponse.response.docs[0]};
}else{
return {document:false};
}
}else{
console.error("SOLR query returned non 200 response");
return {document:"UNKNOWN"};
}
}
1条答案
按热度按时间oxcyiej71#
Solr用于其正常乐观并发的
_version_
字段在如何将更新分发到SolrCloud中的副本and MUST be assigned internally by Solr
方面也具有重要的语义。用户不能重新使用该字段并将其指定为用于DocBasedVersionConstraintsProcessorFactory配置的versionField。开放式并发是Solr的一项功能,客户端应用程序可以使用该功能更新/替换文档,以确保它们正在替换/更新的文档没有被其他客户端应用程序同时修改。此功能的工作原理是要求索引中所有文档上都有
_version_
字段,并将其与更新命令中指定的_version_
进行比较。默认情况下,Solr的架构包括一个_version_
字段,该字段会自动添加到每个新文档中。由于字段是内部定义和使用的,因此您无法更改字段的字段类型。
如果需要,您可以自由引入其他字段。
如果您使用Java作为编程语言,那么您可以如下转换它。