我正在使用 SolrNet 访问 Solr 索引,其中有一个名为“tags”的多值字段。我想执行以下伪代码查询:
(tags:stack)^10 OR (tags:over)^5 OR (tags:flow)^2
其中术语“stack”被提升了 10,“over”被提升了 5,“flow”被提升了 2。我想要的结果是“stack”的结果会比“stack”的结果更高流”等。
我遇到的问题是说“流”只出现在几个文档中,但“堆栈”出现在负载中,然后由于高 idf 值,带有“流”的文档出现在带有“堆栈”的文档之上。
当这个项目直接在 Lucene 中实现时,我使用了 ConstantScoreQuery,这些消除了仅基于 boost 值的分数的 idf。
如何使用 Solr 和 SolrNet 来实现这一点,我实际上只是向 Solr 传递了一个查询字符串?如果不能,有没有其他方法可以解决这个问题?
提前致谢!