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 に注釈を付けることは可能ですか?
ネットで調べてみると、Spring Data Solr + SorlJ を使用した例はほとんど見つかりませんでした。