私は約 500.000 のドキュメントのインデックスを持っています。これらのドキュメントの約 10 には、タイトル「at the moon」(「タイトル」フィールド) とタグ「nasa」(「タグ」フィールド) が含まれています。「at the moon nasa」で検索すると、これらのドキュメントが検索結果のリストのかなり下の方に出てきます。これは、タイトル フィールドはブーストされませんが、タグ フィールドはかなりブーストされるためです。そのため、「nasa」というタグが付いた他のドキュメントは、タイトル フィールドのクエリ全体にほぼ一致するドキュメントよりも優先されます。
ただし、Solr にはわかりませんが、「at the moon nasa」というクエリは、ドキュメントのタイトル「at the moon」とほぼ一致します。クエリから「nasa」の部分を削除すると、ドキュメントが一番上に表示されます。
Solr にある種のおおよそのフレーズ クエリを実行するように指示する方法はありますか? 次のような単語の組み合わせで検索フレーズを分割する bq パラメータを使用して、ある種のグラム風の検索を実装することは理にかなっていますか?
// PHP-ish pseudocode
$bq[]=title:"at the"^2
$bq[]=title:"at the moon"^3
$bq[]=title:"at the moon nasa"^4
$bq[]=title:"the moon"^2
$bq[]=title:"the moon nasa"^3
$bq[]=title:"moon nasa"^4
これはまったく理にかなっていますか?また、一致するクエリの部分の大きさに応じてドキュメントをブーストすることは理にかなっていますか?