私は自分のウェブサイトに Solr を使用しています。ドキュメントには、ジャンルとトピックの 2 つのフィールドがあります。たとえば、愛についての小説を検索したい場合、solr クエリは tyepDef=dismax&qf=genre,topic&q=genre:novel AND topic:about love になります。ただし、これは結果を返しません。ただし、edismax を使用すると、トピックが「about」で始まるすべてのドキュメントが返されます。これらは 2 つの異なる極端であり、何もないか、すべてです。ジャンル:小説とトピック:愛についての両方を満たすドキュメントが返されるように、クエリをどのように構成できますか?
2 に答える
0
dismax
は次のようなフィールド クエリをサポートしていません: genre:novel
. 代わりに、特定のフィールドで検索するように構成します。
q=novel about love&qf=genre,topic&defType=dismax
拡張 dismax ハンドラー (edismax) は、フィールドの指定をサポートしています。
于 2016-07-18T10:41:40.660 に答える
0
ジャンルが固定されているので、ジャンル フィールドに対してクエリを実行するべきではないと思います。
むしろ、ジャンル フィールドでフィルタリングする必要があります。
たとえば、fq=genre:novel の場合、通常の検索よりもはるかに高速になります。
トピックはコンテンツ フィールドであり、通常のクエリとして検索するq=topic:about
か、既に dismax/edismax を使用しているため、使用できます。q=about&qf=topic
于 2013-06-17T04:04:24.177 に答える