使用 roo 我生成了以下 spring bean
<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 中对其进行索引,或者此代码是否足够好?
除此之外,我的应用程序是一个多层架构,网站只是其中的一小部分。那么我怎么能删除被 Windows 应用程序或 android 应用程序删除的数据。
一种解决方案可能是重新创建索引,但它不会导致 solr 中的统计信息丢失,用于使搜索结果更有效(我不确定)?
我如何在 solr 中添加同义词搜索以及如何初始化拼写错误插件(单词可能是人名或地名,基本上不是来自字典)?
很抱歉合并了多个问题。在此先感谢您的帮助。