本文整理汇总了Java中org.apache.solr.common.util.StrUtils.HEX_DIGITS属性的典型用法代码示例。如果您正苦于以下问题:Java StrUtils.HEX_DIGITS属性的具体用法?Java StrUtils.HEX_DIGITS怎么用?Java StrUtils.HEX_DIGITS使用的例子?那么, 这里精选的属性代码示例或许可以为您提供帮助。您也可以进一步了解该属性所在类org.apache.solr.common.util.StrUtils
的用法示例。
在下文中一共展示了StrUtils.HEX_DIGITS属性的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: processAdd
@Override
public void processAdd(AddUpdateCommand cmd) throws IOException {
if (enabled) {
SolrInputDocument doc = cmd.getSolrInputDocument();
List<String> currDocSigFields = null;
boolean isPartialUpdate = DistributedUpdateProcessor.isAtomicUpdate(cmd);
if (sigFields == null || sigFields.size() == 0) {
if (isPartialUpdate) {
throw new SolrException
(ErrorCode.SERVER_ERROR,
"Can't use SignatureUpdateProcessor with partial updates on signature fields");
}
Collection<String> docFields = doc.getFieldNames();
currDocSigFields = new ArrayList<>(docFields.size());
currDocSigFields.addAll(docFields);
Collections.sort(currDocSigFields);
} else {
currDocSigFields = sigFields;
}
Signature sig = req.getCore().getResourceLoader().newInstance(signatureClass, Signature.class);
sig.init(params);
for (String field : currDocSigFields) {
SolrInputField f = doc.getField(field);
if (f != null) {
if (isPartialUpdate) {
throw new SolrException
(ErrorCode.SERVER_ERROR,
"Can't use SignatureUpdateProcessor with partial update request " +
"containing signature field: " + field);
}
sig.add(field);
Object o = f.getValue();
if (o instanceof Collection) {
for (Object oo : (Collection)o) {
sig.add(String.valueOf(oo));
}
} else {
sig.add(String.valueOf(o));
}
}
}
byte[] signature = sig.getSignature();
char[] arr = new char[signature.length<<1];
for (int i=0; i<signature.length; i++) {
int b = signature[i];
int idx = i<<1;
arr[idx]= StrUtils.HEX_DIGITS[(b >> 4) & 0xf];
arr[idx+1]= StrUtils.HEX_DIGITS[b & 0xf];
}
String sigString = new String(arr);
doc.addField(signatureField, sigString);
if (overwriteDupes) {
cmd.updateTerm = new Term(signatureField, sigString);
}
}
if (next != null)
next.processAdd(cmd);
}
示例2: processAdd
@Override
public void processAdd(AddUpdateCommand cmd) throws IOException {
if (enabled) {
SolrInputDocument doc = cmd.getSolrInputDocument();
List<String> currDocSigFields = null;
boolean isPartialUpdate = DistributedUpdateProcessor.isAtomicUpdate(cmd);
if (sigFields == null || sigFields.size() == 0) {
if (isPartialUpdate) {
throw new SolrException
(ErrorCode.SERVER_ERROR,
"Can't use SignatureUpdateProcessor with partial updates on signature fields");
}
Collection<String> docFields = doc.getFieldNames();
currDocSigFields = new ArrayList<String>(docFields.size());
currDocSigFields.addAll(docFields);
Collections.sort(currDocSigFields);
} else {
currDocSigFields = sigFields;
}
Signature sig = req.getCore().getResourceLoader().newInstance(signatureClass, Signature.class);
sig.init(params);
for (String field : currDocSigFields) {
SolrInputField f = doc.getField(field);
if (f != null) {
if (isPartialUpdate) {
throw new SolrException
(ErrorCode.SERVER_ERROR,
"Can't use SignatureUpdateProcessor with partial update request " +
"containing signature field: " + field);
}
sig.add(field);
Object o = f.getValue();
if (o instanceof Collection) {
for (Object oo : (Collection)o) {
sig.add(String.valueOf(oo));
}
} else {
sig.add(String.valueOf(o));
}
}
}
byte[] signature = sig.getSignature();
char[] arr = new char[signature.length<<1];
for (int i=0; i<signature.length; i++) {
int b = signature[i];
int idx = i<<1;
arr[idx]= StrUtils.HEX_DIGITS[(b >> 4) & 0xf];
arr[idx+1]= StrUtils.HEX_DIGITS[b & 0xf];
}
String sigString = new String(arr);
doc.addField(signatureField, sigString);
if (overwriteDupes) {
cmd.updateTerm = new Term(signatureField, sigString);
}
}
if (next != null)
next.processAdd(cmd);
}