2

solr 用の非常に単純なカスタム類似度クラスを作成しました。主にテスト用です。

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" />

norm私の質問は、schema.xml ファイルで指定された値をコードから確認するにはどうすればよいですか? 前もって感謝します。

4

1 に答える 1