【问题标题】:dismax and edismax returns different resultsdismax 和 edismax 返回不同的结果
【发布时间】:2013-06-17 01:18:58
【问题描述】:
我正在为我的网站使用 Solr。该文档有两个字段:流派和主题。例如,如果我想搜索关于爱情的小说,那么 solr 查询将是 tyepDef=dismax&qf=genre,topic&q=genre:novel AND topic:about love。但是,这不会返回任何结果。但是,如果我使用 edismax,则会返回所有主题以“about”开头的文档。这是两个不同的极端,没有或全部。如何配置我的查询,以便返回同时满足genre:novel 和topic:about love 的文档?
【问题讨论】:
标签:
solr
lucene
edismax
dismax
【解决方案1】:
我想由于流派是固定的,您不应该在流派字段上进行查询。
您应该在流派字段上进行过滤。
例如fq=genre:novel,这将比普通搜索快得多。
主题是一个内容字段,然后可以作为普通查询 q=topic:about 进行搜索,或者您已经在使用 dismax/edismax 您可以使用 q=about&qf=topic
【解决方案2】:
dismax 不支持这样的字段查询:genre:novel。相反,您将其配置为搜索某些字段:
q=novel about love&qf=genre,topic&defType=dismax
扩展的 dismax 处理程序 (edismax) 支持指定字段。