【问题标题】:Query results don't match NumFound when using SolrNet with VB.NET将 SolrNet 与 VB.NET 一起使用时,查询结果与 NumFound 不匹配
【发布时间】:2012-03-19 18:33:33
【问题描述】:

我在一个 VB.NET 网站中实现了 SolrNet,它运行良好,但有一个例外。我的结果对象可能会告诉我已找到 10 个匹配的“文档”,但该集合仅包含 9 个。

我的集合总是比 NumFound 属性状态少 1 个。我直接通过我的 Solr 实例运行查询,并且我知道 NumFound 属性反映了正确的值。查看返回的文档后,我可以看到我的集合中缺少每个结果集中的第一个文档,即位置 0 的文档。

这似乎是一个与零索引集合相关的问题。

我看不出我做错了什么,并怀疑这是一个错误。有没有其他人经历过这种情况,或者你能建议我哪里出错了吗?

源码如下

Private Prods As New SolrQueryResults(Of BLL.solrProduct)

Dim solr As ISolrOperations(Of BLL.solrProduct) = ServiceLocator.Current.GetInstance(Of ISolrOperations(Of BLL.solrProduct))() 

Dim SolrQueryOptions As New SolrNet.Commands.Parameters.QueryOptions() With {.Stats = New StatsParameters(), .Start = PagingCurrent, .Rows = PagingSize, .Facet = New FacetParameters() With { _ 
.MinCount = 1, .Queries = New SolrNet.ISolrFacetQuery() {New SolrFacetFieldQuery("brand")}}}  

SolrQueryOptions.Stats.AddField("selling_price")

SolrQueryOptions.FilterQueries.Add(New SolrQueryByField("brand", "puma"))

Prods = solr.Query("shirt", SolrQueryOptions)

PagingTotal = Prods.NumFound    'This returns 10
lv_prods.DataSource = Prods
lv_prods.DataBind()             'This renders 9 items

【问题讨论】:

  • 请发布一个失败的测试...没有更多信息我只能说使用示例应用程序作为参考。另外,为什么您的类别查询中有管道?
  • 我在 Solr 实例上用来镜像我通过 SolrNet 库发送的内容的查询字符串如下
  • q=product_name:shirt OR product_description:shirt OR id:shirt&start=0&rows=12&facet=on&facet.field=brand&fq=brand:puma&facet.mincount=1&stats=true&stats.field=selling_price 我的有管道类别查询,因为这是我处理属于多个类别的产品的方式,类别字段包含一个产品所属的所有类别的管道分隔列表,然后我可以像这样针对类别字段发出查询“ |8878|"获取属于8878类的所有产品。实际字段内容可以是“|8854|8896|8878|8564|”
  • 改用多值字段。我仍然需要通过失败的测试来诊断您的文档计数问题...
  • 我真的很抱歉,但我不确定你在寻找失败的测试是什么?您需要我正在使用的实际源代码吗?至于多值字段,我认为这可行,但我已将 Solr 设置为从 SQL Server 建立索引,并且我不得不对我的源数据进行大量处理以使其正确索引。不过我一定会调查的,谢谢!

标签: vb.net solr solrnet


【解决方案1】:

Solr 分页是从零开始的,即第一项对应 Start=0

【讨论】:

    猜你喜欢
    • 2021-12-12
    • 1970-01-01
    • 1970-01-01
    • 2017-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-28
    • 1970-01-01
    相关资源
    最近更新 更多