2
我爲solr做了一個非常簡單的自定義相似性類。它主要用於測試。如何從我的自定義相似度實現中訪問schema.xml中的值
public class StaticNormSimilarity extends DefaultSimilarity {
private static final Logger LOG = LoggerFactory.getLogger(StaticNormSimilarity.class);
private float norm = 0.1f;
public void setNorm(float norm) {
this.norm = norm;
//TODO: not working how can I access parameters
LOG.info("##gyk: StaticNormSimilarity norm = {}", norm);
System.out.println(String.format("##gyk: StaticNormSimilarity: %f",norm));
}
public float getNorm() {
return this.norm;
}
@Override
public float queryNorm(float sumOfSquaredWeights) {
return this.norm;
}
}
在schema.xml中我做了以下內容:
<fieldType name="text_en" class="solr.TextField" positionIncrementGap="100">
<similarity class="gyk.solr.similarity.StaticNormSimilarity">
**HOW CAN I SEE THIS VALUE FROM MY CODE**
<float name="norm">0.1</float>
</similarity>
<analyzer type="index">
...
</analyzer>
<analyzer type="query">
...
</analyzer>
</fieldType>
和
<similarity class="solr.SchemaSimilarityFactory" />
我的問題是如何從代碼中看到在schema.xml中指定的norm
值文件?提前致謝。
這是快速的retrival。非常感謝! –