我正在为我的网站使用Solr。该文档有两个字段:流派和主题。例如,如果我想搜索一本关于爱情的小说,那么 solr 查询将是 tyepDef=dismax&qf=genre,topic&q=genre:novel AND topic:About love。但是,这不会返回任何结果。但是,如果我使用 edismax,则会返回主题以"about"开头的所有文档。这是两个不同的极端,什么都没有或全部。如何配置我的查询,以便返回同时满足类型:小说和主题:关于爱情的文档?
由于流派是固定的,你不应该在流派字段上查询。
您应该在流派字段上进行过滤。
例如,fq=类型:小说,这将比正常搜索快得多。
该主题是一个内容字段,然后可以作为普通查询q=topic:about
进行搜索,或者当您已经在使用 dismax/edismax 时,您可以使用q=about&qf=topic
dismax
不支持如下字段查询:genre:novel
.相反,您可以将其配置为搜索某些字段:
q=novel about love&qf=genre,topic&defType=dismax
扩展的 dismax 处理程序 (edismax( 支持指定字段。