1

一部のキーワード フィールドに永続的なレベランス ボーナスを設定することはできますか? 商品名フィールド、id キーワード フィールド、優先キーワード フィールドがあります。検索のrevelance +結果の優先度のような結果のrevelanceを設定したい。

 //id of product
  $doc->addField(Zend_Search_Lucene_Field::Keyword('pk', $this->getId(), "utf-8"));

  //i want set permanent revelance bonus on that field
  $doc->addField(Zend_Search_Lucene_Field::Keyword('priotity', "priority", "utf-8"));

  //field for search
  $doc->addField(Zend_Search_Lucene_Field::UnStored('description', $this->getDescription(), "utf-8"));

たとえば、Apple iPhone を検索すると、結果は次のようになるはずです: 最大一致最大優先度、最大一致次優先度、最大一致次優先度

4

1 に答える 1

2

はい、スコアリングのコンテキストでフィールドに永続的なボーナスを設定することは可能です。

チュートリアルはこちら

この zend Lucene についてはよくわかりませんが、Field.setBoost()メソッドはプレーンな Lucene で行う方法です。それは基本的な機能であるため、 zend Lucene でそれを行う同等の方法があるに違いないと確信しています。

以下は、上記のチュートリアルのスニペットです。

    $field = Zend_Search_Lucene_Field::Text('firstname', $this->getFirstname());
    $field->boost = 1.5;

上記のスニペットの有効性を保証することはできませんが、お役に立てば幸いです。

于 2013-03-23T22:37:02.053 に答える