我的SOLR实施有两个要求:
我需要能够同时搜索多个字段(最好使用字段提升)。这可以使用dismax解析器。
我还有一组特定的索引字段(例如性别字段)。我需要能够应用这些特定的过滤器(例如:选择?q = david& gender:male& status:married)。根据我对dismax的理解,这是不可能的。
请建议是否可以使用dismax(或edismax)处理第二项要求?现在我被迫使用标准查询解析器,即使我真的很喜欢dismax。
答案 0 :(得分:0)
没有什么能阻止你使用dismax或edismax。使用qf
告诉它默认搜索哪些字段,并使用fq
来应用充当过滤器的查询。
/select?q=david&fq=gender:male&fq=status:married&qf=name^10 address^3
Filter Queries不会影响分数,并会单独缓存。如果您始终对性别和状态进行过滤,则可以将它们组合在一起以获取单个查询缓存(fq=gender:male AND status:married
)。