データインポートハンドラなしで情報をロードします
-
12-12-2019 - |
質問
私は700.000の街路名、8111自治体名、および80333地域の郵便番号を持っています。この情報をSolrに索引付けしたいと思います。ユーザーはAjaxオートコンプリートフォームを通してこの情報を検索したいです。私はそれがほとんどデータとAjaxのオートコンプリートフォームの振る舞いでそれを証明しました。
<fieldType name="text" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.StopFilterFactory"
ignoreCase="true"
words="stopwords.txt"
enablePositionIncrements="true"
/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.SnowballPorterFilterFactory" language="English" protected="protwords.txt"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
<filter class="solr.StopFilterFactory"
ignoreCase="true"
words="stopwords.txt"
enablePositionIncrements="true"
/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="1"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.SnowballPorterFilterFactory" language="English" protected="protwords.txt"/>
</analyzer>
</fieldType>
.
すべてのデータをSolr
にロードするときに問題が発生します- 情報をSOLRサーバーにロードする方法(Grailsアプリケーションに入っていて、データ入力ハンドラなしで情報を持つインスタンスをロードする必要があります)今日は今日も何時間もの間、ついにGrails Consoleクラッシュしました:( - >サービスをする代わりにGrailsスクリプトを使用し、Grails Consoleで実行する必要がありますか??
- またはデータ入力ハンドラを使用して速くロードする必要がありますか?データ入力ハンドラを含むさまざまなテーブルの異なる列から文字列値を連結できますか?
(それぞれの文書(700.000 + 8111 + 80.333文書)を持っているのは大丈夫ですか??)
あなたの時間をありがとう
解決
私はあなたの自治体、街路名、および投稿コードが別々に自動補完されることを想定しています。この場合は、別の各1つのSolr Core を使用します。
またはデータ入力ハンドラを使用して速くロードする必要がありますか??
DIHはかなり速くなり、この情報が非常に頻繁に変わらない限り、このようにするのは問題ないはずです。
データ入力ハンドラを含むさまざまなテーブルの異なる列から文字列値を連結できますか?
はい;data-config.xml
では、特定のSQL
クエリを提供し、データベースのネイティブ連結(例えば、Oracleの||
)を使用できます。
他のヒント
真剣に、シェルスクリプトを書いて、CURLを使用してSOLRに更新を送信します。
あなたのスイミングプールに浮かぶ船に搭載された大砲で壁から缶を撃ちようとしています。大砲や船やプールは必要ありません。エアガンでそこに立って、完了までのアップデートを1つずつポップします。
サンプルSOLR更新を使用して完了したExamLpleシェルスクリプトは、Solrバイナリをダウンロードし、Apache-Solr-3.0.tgzまたはApache-Solr-3.5.0.zipの近くのミラーからダウンロードしてください。 http://lucene.apache.org/solr/downloads.html
アーカイブを解凍し、ディレクトリの例に進み、以下の手順に従ってください。 http://lucene.apache.org/solr/tutorial.html
あなたがUNIXにいる場合は、post.shを使用してください。
あなたのサーバーにインストールしたSolrバージョンを確認してください。それが3.50ではない場合は、ここに新しい1つがあるときに古いバージョンを使用しているのですか?