我正在编写一个与 Solr 通信的 Web 应用程序,并且我正在使用 Spring Data Solr + SolrJ 来获取 Java 中的信息。
对于 Solr 查询,我使用 (e)DisMax 和一些选项(现在,也许以后我需要添加其他东西):
SolrQuery query = new SolrQuery();
query.set("q", terms);
query.set("pf", "text^100");
query.set("qf", "text");
query.set("defType", "edismax");
query.setStart(pageable.getOffset());
query.setRows(pageable.getPageSize());
query.setHighlight(true).setHighlightSnippets(10);
query.setParam("hl.fl", "text");
对于这种结构,我以这种方式构建了一个 bean
@SolrDocument
public class Document {
@Field
private String id;
@Field
private String text;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
}
我将执行查询:
response = solrTemplate.getSolrServer().query(query);
List<Document> beans = solrTemplate.convertQueryResponseToBeans(response, Document.class);
之后,在我的 Document 对象中,我只找到“id”和“text”。是否也可以对 bean 进行注释以获取Highlight?
在网上看,我发现使用 Spring Data Solr + SorlJ 的例子很少。