2017-06-01 13 views
0

こんにちは私は空間検索クエリから何かの結果を得るのに苦労してきました。Solr Cassandra空間検索 - 結果が得られません

誰も私が間違って

をやって何を教えてもらえます私はDatastax DSEと連携5.0.0

まず私はカサンドラテーブル

CREATE TABLE mytable.test (
id varchar PRIMARY KEY, 
latlon varchar 
city varchar, 
); 

を作成することが正常に動作します。

curl http://myhost:8983/solr/resource/mytable.test/schema.xml --data-binary @schema.xml -H 'Content-type:text/xml; charset=utf-8' 
:私は、このコマンドを使用してSolrにこのスキーマを送る

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<schema name="test" version="1.1"> 
<types> 
<fieldType class="org.apache.solr.schema.StrField" name="StrField"/> 
<fieldType class="org.apache.solr.schema.TextField" name="TextField"> 
<analyzer> 
<tokenizer class="solr.StandardTokenizerFactory"/> 
<filter class="solr.LowerCaseFilterFactory"/> 
</analyzer> 
</fieldType> 
     <fieldType name="coord" class="solr.LatLonType" subFieldSuffix="_coordinate" /> 
     <fieldType name="tdouble" class="solr.TrieDoubleField" precisionStep="8" positionIncrementGap="0" /> 
</types> 
<fields> 
<field indexed="true" multiValued="false" name="id" stored="true" type="StrField"/> 
<field indexed="true" multiValued="false" name="city" stored="true" type="TextField"/> 
<field indexed="true" multiValued="false" name="latlon" stored="true" type="coord"/> 
<dynamicField name="*_coordinate" type="tdouble" indexed="true" stored="false" /> 
</fields> 
<defaultSearchField>city</defaultSearchField> 
<uniqueKey>id</uniqueKey> 
</schema> 

insert into mytable.test (id, latlon, city) values ('1', '48.87,2.29','Paris 17'); 
insert into mytable.test (id, latlon, city) values ('2', '48.86,2.29','Paris 16'); 
insert into mytable.test (id, latlon, city) values ('3', '48.84,2.29','Paris 15'); 
insert into mytable.test (id, latlon, city) values ('4', '48.86,2.33','Paris 1'); 

は、私は、このに(++メモ帳を使用して)、スキーマのXMLを変更します。 は、それから私はいくつかのデータを挿入します

次に、Schema.xmlをリロードします。

http://myhost:8983/solr/admin/cores?action=RELOAD&core=mytable.test 

私は今すぐ準備ができているはずです。しかし、私が帰ってくることは不可能です。

select * from mytable.test where solr_query = '{!geofilt sfield=latlon pt=48.87,2.29 d=5}'; 

答えは「結果なし」です。

私は何ができるのですか?ありがとうございました !

答えて

2

スキーマに変更を加えた場合は、インデックスをもう一度に変更する必要があります。

すべての場合に当てはまるわけではありません。例えば、新しいフィールドを追加したり、再インデックスする必要はありません。古いドキュメントにはそのフィールドはありません。しかし、あなたは、フィールドの種類/分析、またはなどの「保存」などの属性を変更した場合、あなたはその変更がで蹴ることをインデックスを再作成する必要があり

例:あなたが使用することもでき

curl "http://10.1.2.3:8983/solr/admin/cores?action=RELOAD &name=keyspace.table&reindex=true&deleteAll=false"

+0

非常に機能します。 – Jean

1

dsetoolは、たとえば、クラスタが複数のDCを持っている場合は、すべてのデータセンターに一度このを行う必要があり

dsetool reload_core keyspace_name.table_name reindex=true deleteAll=false 

注コアのインデックスを再作成します。

参考DSE5.0ドキュメントはreindexing in place

関連する問題