我想索引嵌套文档。我有一个ProductBean类,它有3个字符串类型字段和一个Object类型的List。
@Field
String id;
@Field
String tgtKey_;
@Field
String borrowerId;
@Field
List<Car> cars;
Class Car如下。
public class Car {
@Field
String model;
@Field
String cc;
public String getModel() {
return model;
}
public void setModel(String model) {
this.model = model;
}
public String getCc() {
return cc;
}
public void setCc(String cc) {
this.cc = cc;
}
}
以下是用于索引的代码。
ProductBean bean = new ProductBean("123", "xyz", "23");
List<Car> cars = new ArrayList<Car>();
Car c = new Car();
c.setModel("Pulsar 150");
c.setCc("150");
Car c1 = new Car();
c1.setModel("Desert Strom");
c1.setCc("500");
cars.add(c);
cars.add(c1);
bean.setCars(cars);
server.addBean(bean);
server.commit();
文档已编制索引,但数据不正确。我得到的数据如下。
"docs": [
{
"id": "123",
"tgtKey_": "xyz",
"borrowerId": "23",
"cars": [
"com.aiq.solr.poc.Car@25618e91",
"com.aiq.solr.poc.Car@7a92922"
],
"_version_": 1580777018015875000
}
]
对此的任何帮助都非常感谢。我正在使用Solr 4.10.3
答案 0 :(得分:0)
不幸的是,Solr 5.1增加了对child=true
的简单支持。
如果你使用旧的Solr(在你的情况下是4.10.x),你需要使用一些解决方法,简单来说应该是这样的
我宁愿不在这里复制任何代码,而是建议您尽快迁移到Solr 5.x以防止这种肮脏的黑客攻击。