使用SolrJ基于类创建Solr模式

时间:2017-11-15 11:18:54

标签: solr solrj

在应用程序启动时,我想检查架构是否存在,并且: 1)如果不 - >从包含字段的Java类创建模式 2)如果上述类别不同 - >更新架构 3)如果模式使用Java类中的字段1:1映射则不执行任何操作

我将我的任务分为3个子任务,第一个是从现有Java类创建模式。

这是我的课程(省略了getters和setter):

public class Order {
private String name;
private String phone;
private Address address;

private List<Amenities> amenities;
private BigDecimal distance;
private String image;
private List<Attributes> attributes;
private List<String> networks;
private OrderType orderType;
private Service service;
}

正如您所看到的,它有很多字段类型,也应该用于创建模式(递归?)。甚至可以创建这样的架构吗?

1 个答案:

答案 0 :(得分:2)

这应该很简单:

首先,您需要列出该类的所有字段,可以通过reflection来实现。之后,您应该使用Schema API,这将允许您对架构的字段执行CRUD操作。

/schema/fields将允许您获取所有字段,然后您可以使用replace-field更新字段,delete-field删除字段,使用add-field添加字段。有关详细信息,请查看此documentation

警告:从Solr 5.3开始添加了Schema API