次のSpring Beanを生成したrooを使用して
<bean class="org.apache.solr.client.solrj.impl.CommonsHttpSolrServer" id="solrServer">
<constructor-arg value="${solr.serverUrl}"/>
</bean>
構成ファイルには
solr.serverUrl=http\://localhost\:8983/solr
これは次のように使用されます。
@Autowired
transient SolrServer Address.solrServer;
@Async
public static void Address.indexAddresses(Collection<Address> addresses) {
List<SolrInputDocument> documents = new ArrayList<SolrInputDocument>();
for (Address address : addresses) {
SolrInputDocument sid = new SolrInputDocument();
sid.addField("id", "address_" + address.getId());
sid.addField("address.id_i", address.getId());
// Add summary field to allow searching documents for objects of this type
sid.addField("address_solrsummary_t", new StringBuilder().append(address.getId()));
documents.add(sid);
}
try {
SolrServer solrServer = solrServer();
solrServer.add(documents);
solrServer.commit();
} catch (Exception e) {
e.printStackTrace();
}
}
私の質問は:
solr でインデックスを作成するには、solr でスキーマを作成する必要がありますか?それとも、このコードで十分ですか?
これとは別に、私のアプリケーションは多層アーキテクチャであり、Web サイトはその一部です。では、WindowsアプリケーションやAndroidアプリケーションなどによって削除されたデータを削除するにはどうすればよいですか。
1つの解決策はインデックスを再作成することですが、検索結果をより効果的にするために使用されるsolrの統計が失われることはありませんか?
どうすればsolrに類義語検索を追加でき、スペルミスアドオンを初期化できますか(単語は基本的に辞書からではなく、人名または場所の名前である可能性があります)?
複数の質問をまとめてすみません。よろしくお願いします。