【发布时间】:2014-10-27 18:50:28
【问题描述】:
我的 solr 实现有这样的查询
q=(field1:ipod and field2:black) OR (field3:'苹果电脑') OR (field4:working)
这里基本上有 3 个条件,用“或”分隔。当我运行这个查询时,我得到了结果。在结果中,我想看看满足了三个条件中的哪一个。例如,除了返回的数据(自定义字段)之外的结果中,我特别希望每个返回的文档都有 cond1=true、cond2=true、cond3=false。
假设不对这些字段(1 到 4)进行分析。所有字段都是字符串。索尔 4.6.1。分布式。
尝试过的解决方案(但没有令人满意的结果):
- debugquery=true 似乎提供了太多冗长的信息(请解释 字段),我不感兴趣,我正在寻找简单的字段 要添加。我可以得到这些调试 xml-ized 进行解析,但是 复杂的正常处理。
- group by (group.query) 选项将通过在 group.query 中提供条件来帮助我们按条件分组,这对我来说不是最佳选择,但只是尝试过。但它似乎不适用于分布式模式 (SOLR-5046)
- 添加字段函数查询,不能像 _cond1_:if(field1=='ipod' and field2=='black') 那样对字符串进行简单的字段相等性检查。我猜在函数查询中没有这样的相等性检查。
这里还有其他选项解决方案吗?我应该在这里写自定义相似度还是自定义 Doc 转换器?
【问题讨论】: