【发布时间】:2016-10-26 09:04:43
【问题描述】:
上下文:: 覆盖 ClassicSimilarityFactory 时,在 solr-core 5.5.0 中出现错误。已粘贴日志和课程。覆盖 ClassicSimilarityFactory 会引发错误 - Context:: 在覆盖 ClassicSimilarityFactory 时在 solr-core 5.5.0 中出现错误。已粘贴日志和课程。覆盖 ClassicSimilarityFactory 会抛出错误 -
package com.Others;
import org.apache.lucene.analysis.payloads.PayloadHelper;
import org.apache.lucene.search.similarities.ClassicSimilarity;
import org.apache.lucene.search.similarities.Similarity;
import org.apache.lucene.util.BytesRef;
import org.apache.solr.common.params.SolrParams;
import org.apache.solr.search.similarities.ClassicSimilarityFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class PayloadSimilarityFactory extends ClassicSimilarityFactory {
@Override
public void init(SolrParams params) {
super.init(params);
}
@Override
public Similarity getSimilarity() {
return new PayloadSimilarity();
}
}
class PayloadSimilarity extends ClassicSimilarity {
private final static Logger logger = LoggerFactory.getLogger(PayloadSimilarity.class);
//Here's where we actually decode the payload and return it.
@Override
public float scorePayload(int doc, int start, int end, BytesRef payload) {
logger.info("PayloadSimilarity ---- " + payload);
if (payload == null)
return 1.0F;
return PayloadHelper.decodeFloat(payload.bytes, payload.offset);
}
}
Schema.xml file :
<fieldType name="payloads" class="solr.TextField" indexed="true" stored="true">
<analyzer>
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.DelimitedPayloadTokenFilterFactory" encoder="float" delimiter="|"/>
</analyzer>
<similarity class="com.Others.PayloadSimilarityFactory"/>
</fieldType>
</types>
Error Logs :
Error creating core [catalog]: Could not load conf for core catalog: Can't load schema /Users/z002cww/repo/jarvis-solr-config/config/catalog/conf/schema.xml: FieldType 'payloads' is configured with a similarity, but the global similarity does not support it: class org.apache.solr.search.similarities.ClassicSimilarityFactory
org.apache.solr.common.SolrException: Could not load conf for core catalog: Can't load schema /Users/z002cww/repo/jarvis-solr-config/config/catalog/conf/schema.xml: FieldType 'payloads' is configured with a similarity, but the global similarity does not support it: class org.apache.solr.search.similarities.ClassicSimilarityFactory
at org.apache.solr.core.ConfigSetService.getConfig(ConfigSetService.java:84)
at org.apache.solr.core.CoreContainer.create(CoreContainer.java:812)
at org.apache.solr.core.CoreContainer.access$000(CoreContainer.java:87)
at org.apache.solr.core.CoreContainer$1.call(CoreContainer.java:467)
【问题讨论】:
-
欢迎来到 SO。请访问此网站以了解如何提出一个好的问题,以便我们为您提供帮助:stackoverflow.com/help/how-to-ask
-
找到解决方案 - 在 schema.xml 的第一行(模式名称 ="XYZ" )下方添加
并且它将起作用。如果有人遇到问题,请告诉我