Solr 性能 - 如何使用常规查询对过滤查询进行 OR
Solr Performance - how to OR a filter query with a regular query
尝试使用 Solr 4.7 对主查询 (q) 和筛选查询 (fq) 进行 OR。
我们在索引中有一个高频词
'field1:value' - 5 million documents
'field2:value' - 500 documents which should be ranked higher
按
搜索时
q=field1:value OR field2:value
查询时间很长(超过2秒)
搜索时
q=*:*fq=field1:value OR field2:value
查询 运行 相当快,但我无法获得列表顶部的 field2:value
。
目前 post 无法重新排名。
我了解过滤器查询 (fq) 的速度是不涉及评分。 (这不是一个频繁的查询,不需要缓存)。
尝试在 QueryParser
插件中用 ConstantScoreQuery
包装 TermQuery
。
但它的性能似乎与普通的 TermQuery
.
一样
我正在寻找的是一种将 运行 过滤器查询作为 OR 的方法,这意味着 q=field2:value&or_fq=field2:value
或者在主查询中创建一个 'real-non-scoring' TermQuery
。
请你帮助我好吗?谢谢。
使用 *:*
作为查询,然后应用您所做的过滤查询 - field1:value OR field2:value
as fq
。然后,您可以使用 bq
或 boost
和 field2:value
对那些在 field2
.
中有命中的人进行评分
尝试使用 Solr 4.7 对主查询 (q) 和筛选查询 (fq) 进行 OR。
我们在索引中有一个高频词
'field1:value' - 5 million documents
'field2:value' - 500 documents which should be ranked higher
按
搜索时q=field1:value OR field2:value
查询时间很长(超过2秒)
搜索时
q=*:*fq=field1:value OR field2:value
查询 运行 相当快,但我无法获得列表顶部的 field2:value
。
目前 post 无法重新排名。
我了解过滤器查询 (fq) 的速度是不涉及评分。 (这不是一个频繁的查询,不需要缓存)。
尝试在 QueryParser
插件中用 ConstantScoreQuery
包装 TermQuery
。
但它的性能似乎与普通的 TermQuery
.
我正在寻找的是一种将 运行 过滤器查询作为 OR 的方法,这意味着 q=field2:value&or_fq=field2:value
或者在主查询中创建一个 'real-non-scoring' TermQuery
。
请你帮助我好吗?谢谢。
使用 *:*
作为查询,然后应用您所做的过滤查询 - field1:value OR field2:value
as fq
。然后,您可以使用 bq
或 boost
和 field2:value
对那些在 field2
.