0

私は自分のウェブサイトに Solr を使用しています。ドキュメントには、ジャンルとトピックの 2 つのフィールドがあります。たとえば、愛についての小説を検索したい場合、solr クエリは tyepDef=dismax&qf=genre,topic&q=genre:novel AND topic:about love になります。ただし、これは結果を返しません。ただし、edismax を使用すると、トピックが「about」で始まるすべてのドキュメントが返されます。これらは 2 つの異なる極端であり、何もないか、すべてです。ジャンル:小説とトピック:愛についての両方を満たすドキュメントが返されるように、クエリをどのように構成できますか?

4

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 に答える