0

Solr 6.0 と Solarium の統合は初めてです。セットアップを実行していますが、フィールドがクエリと完全に一致しない場合に結果が返されません。'http://ayodeji.com'たとえば、 orを含む URL フィールド'http://ayo-tuntun.com'がありますが、「ayo」のクエリはこれらの行を返しませんが*:*、Solr 管理セクションのクエリで返されます。managed-schema ファイルで文字列をテキストに変更しましたが、それでも機能しません。助けてください 以下は、私が使用しているSolarium dismaxの例のコードです。ありがとうございました。

    $client = new Solarium\Client($config);

$query = $client->createSelect();

$dismax = $query->getDisMax();

$dismax->setQueryFields('url^5 author^3 body^1 title');

$searchTerm = 'ayo';

$query->setQuery($searchTerm);

$resultset = $client->select($query);

echo 'NumFound: '.$resultset->getNumFound();

foreach ($resultset as $document) {

    echo '<hr/><table>';

    // the documents are also iterable, to get all fields
    foreach ($document as $field => $value) {
        // this converts multivalue fields to a comma-separated string
        if (is_array($value)) {
            $value = implode(', ', $value);
        }
        echo '<tr><th>' . $field . '</th><td>' . $value . '</td></tr>';
    }
    echo '</table>';
}
4

2 に答える 2

0

Solr は部分文字列を検索しません。つまり、「ello」を検索しても「helloworld」を含むドキュメントが見つからないのは通常の動作です。*ello*必要に応じて、検索文字列として使用する必要があります。

于 2016-04-12T09:30:10.580 に答える