2012-03-19 107 views
1

我已經在VB.NET網站中實現了SolrNet,它的工作原理完美,只有一個例外。我的結果對象可能會告訴我找到了10個匹配的「文檔」,但該集合僅包含9.在VB.NET中使用SolrNet時,查詢結果與NumFound不匹配

我的集合始終包含比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 
+0

請張貼一個失敗的測試......沒有任何詳細信息,所有我能說的是使用示例應用程序作爲參考。另外,爲什麼你的分類查詢中有管道? – 2012-03-20 02:19:07

+0

我在Solr實例上使用的查詢字符串反映了我通過SolrNet庫發送的內容如下 – user1279273 2012-03-20 10:12:27

+0

q = product_name:shirt OR product_description:shirt OR id:shirt&start = 0&rows = 12&facet = on&facet.field =品牌&fq =品牌:puma&facet.mincount = 1&stats = true&stats.field =賣價 我的分類查詢中有管道,因爲這是我處理屬於多個類別的產品的方式,類別字段包含管道分離列表的產品所屬的所有類別,然後我可以針對類別字段發出查詢,如「| 8878 |」獲得屬於8878類的所有產品。實際領域內容可以是「| 8854 | 8896 | 8878 | 8564 |」 – user1279273 2012-03-20 10:20:08

回答

4

Solr的分頁是從零開始的,即第一項對應於啓動= 0

相關問題