1

私は次のことを試みます:

Dim q = New SolrQueryByField("tag", keyword) With {.Quoted = False} Or New SolrQueryByField("cat", keyword) With {.Quoted = False} Or New SolrQueryByField("shortname", keyword) With {.Quoted = False}

Dim loc As New Location(latitude, longitude)
Dim qgeo = New SolrQueryByDistance("geo", loc, 10)

searchresults = solr.Query(q And qgeo).Cast(Of BusinessSolr)().ToList

現時点では機能しないもの:

Value of type 'SolrNet.SolrQueryByDistance' cannot be converted to 'SolrNet.AbstractSolrQuery'.

(qおよびqgeo)

フィールドクエリと距離の組み合わせを行う方法についてのアイデアはありますか?可能であればVB.NETで。たくさんTks

ところで:私はSolr 4、SolrNetの実際のバージョンを使用しています

4

1 に答える 1

1

シナリオを再現しようとしましたが、同じ問題が発生しました。SolrQueryByDistanceのソースコードを見ると、AbstractSolrQueryクラスから派生していないことがわかり、それがこのエラーの原因です。

距離クエリをフィルタークエリとして使用できますか(メインクエリの結果を、指定された距離内にあるアイテムのみに制限します)?その場合は、次を使用できます。

Dim q = New SolrQueryByField("tag", keyword) With {.Quoted = False} Or New SolrQueryByField("cat", keyword) With {.Quoted = False} Or New SolrQueryByField("shortname", keyword) With {.Quoted = False}

Dim loc As New Location(latitude, longitude)
Dim options = New QueryOptions() With { _
.FilterQueries = New ISolrQuery() {New SolrQueryByDistance("geo", loc, 10)} _
}

searchresults = solr.Query(q, options).Cast(Of BusinessSolr)().ToList 
于 2013-01-07T15:16:41.720 に答える