3

地理空間検索をRailsアプリに統合しようと数日間試みましたが、rake sunspot:solr:reindexを実行するとこのエラーが発生し続けます

RSolr::Error::Http - 400 Bad Request
Error: ERROR:unknown field 'location_ll'

Request Data: "<?xml version=\"1.0\" encoding=\"UTF-8\"?><add><doc><field name=\"id\">Place 1</field><field   name=\"type\">Place</field><field name=\"type\">ActiveRecord::Base</field><field name=\"class_name\">Place</field><field name=\"location_ll\">42.348065,-71.083623</field></doc> #etc... keeps going on for all the objects/fields being indexed in the table

モデルのlatlon(:location)行をコメントアウトすると、検索とインデックス作成が機能するため、すべてが正しく行われていることがわかりますが、それがバグなのか、何かが足りないのかはわかりません。以下は私が現在使用しているセットアップです:

レール3.2.1ルビー1.9.2p318

Gems sunspot(2.0.0.pre.120417)sunspot_rails(2.0.0.pre.120417)sunspot_solr(2.0.0.pre.120417)

:latitudeと:longitudeはどちらもfloat形式です

モデルを配置

searchable do
text :name
latlon(:location) { Sunspot::Util::Coordinates.new(self.latitude, self.longitude) }
end

Sunspot :: Util :: Coordinates.newのバリエーションを試しました。これには、(緯度、経度)と(緯度、経度)が含まれます。

https://github.com/sunspot/sunspot/issues/203を確認し、提案に従って、sunspotサーバーを停止し、solrフォルダーを削除し、sunspot.ymlを削除し、再インストールして再起動しましたが、まだエラーが発生します。何か案は?どうもありがとうございます!

4

3 に答える 3

2

solrフォルダーのschema.xmlがここからの最新のものと一致することを確認してください。

https://github.com/sunspot/sunspot/blob/master/sunspot_solr/solr/solr/conf/schema.xml

まだローカルホストで動作していませんが、本番環境で動作しています

于 2012-06-06T18:41:04.873 に答える
2

websolrを使用している場合は、Ruby on Rails(Solr 3)のインデックスタイプをSunspot2.0に設定していることを確認する必要があります。私のデフォルトはRubyonRailsのSunspot1.3.xで、これがエラーの原因でした。unknown field 'location_ll'

Herokuアドオンを使用しています。そのために、次のコマンドを実行してインデックスタイプを設定できます。

$ heroku addons:open websolr 

次に、インデックス(おそらくdefault)をクリックし、ドロップダウンから選択して変更を押します。

ここに画像の説明を入力してください

于 2014-02-09T23:22:07.090 に答える
0

また、schema.xmlがデフォルトのgemのディレクトリからではなく、solrディレクトリからロードされていることを確認してください。

于 2015-09-15T15:39:28.153 に答える