如何在SOLR中以字符串形式返回_version_



Solr将_version_字段(用于乐观并发(的值作为整数返回。当对返回的文档执行JSON.parse()时,_version_数字被取整,因为该数字太大,无法用javascript表示。

如何强制solr将_version_作为字符串返回?在客户端做一些技巧来避免这个问题也是可能的,但我宁愿一开始就不要用太大的数字来制造问题。我正在使用Solr 8.8。

感谢

更新:我正在使用node进行GET请求。从字符串到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"};
}

}

Solr用于其正常乐观并发的_version_字段在如何将更新分发到SolrCloud中的副本(and MUST be assigned internally by Solr(方面也具有重要的语义。用户不能重新指定该字段的用途并将其指定为在DocBasedVersionConstraintsProcessorFactory配置中使用的versionField。

乐观并发是Solr的一个功能,客户端应用程序可以使用它来更新/替换文档,以确保它们正在替换/更新的文档不会被另一个客户端应用程序同时修改。此功能的工作原理是要求索引中的所有文档都有一个_version_字段,并将其与作为更新命令一部分指定的_version_进行比较。默认情况下,Solr的Schema包括一个_version_字段,该字段会自动添加到每个新文档中。

由于字段是内部定义和使用的,因此无法更改字段的字段类型。

如果需要,您可以自由介绍其他字段。

如果您使用Java作为编程语言,那么您可以将其转换如下。

String strVersion = Long.toString(_version_);

相关内容

  • 没有找到相关文章

最新更新