Допустим, вы используете спящий режим для постоянного слоя вашего веб-приложения с конфигурацией на основе аннотаций. Затем вы можете использовать те же классы моделей (как те, что я дал ниже), используемые для аннотации, чтобы установить их индекс на сервере Solr с помощью аннотации, специфичной для сервера Solr.
Я приведу пример, где это делается.
Следующим классом является класс модели клиента без аннотаций Solr.
@Entity
@Table(name="Customer")
public class Customer {
private int customerId;
private String customerName;
private String customerAddress;
@Id
public int getCustomerId() {
return customerId;
}
public void setCustomerId(int customerId) {
this.customerId = customerId;
}
public String getCustomerName() {
return customerName;
}
public void setCustomerName(String customerName) {
this.customerName = customerName;
}
public String getCustomerAddress() {
return customerAddress;
}
public void setCustomerAddress(String customerAddress) {
this.customerAddress = customerAddress;
}
}
Теперь давайте добавим аннотации к этому классу с помощью аннотаций Solr для индексации сведений о клиенте в Solr Server.
@Entity
@Table(name="Customer")
public class Customer {
@Field
private int customerId;
@Field
private String customerName;
@Field
private String customerAddress;
@Id
public int getCustomerId() {
return customerId;
}
public void setCustomerId(int customerId) {
this.customerId = customerId;
}
public String getCustomerName() {
return customerName;
}
public void setCustomerName(String customerName) {
this.customerName = customerName;
}
public String getCustomerAddress() {
return customerAddress;
}
public void setCustomerAddress(String customerAddress) {
this.customerAddress = customerAddress;
}
}
Просто поместите атрибут @Field для файла, который вы хотите проиндексировать на сервере Solr.
Тогда проблема в том, как сказать solr индексировать эту модель. это можно сделать следующим образом.
Скажем, вы собираетесь сохранить клиента по имени alex в базе данных, затем мы добавим данные в alex следующим образом
Customer alex = new Customer();
alex.setCustomerName("Alex Rod");
alex.setCustomerAddress("101 washington st, DC");
и, после сохранения этого объекта alex в базу данных, вы должны указать solr индексировать этот объект данных. это делается следующим образом.
session.save(alex);
session.getTransaction().commit();
String url = "http://localhost:8983/solr";
SolrServer server = null;
try {
server = new CommonsHttpSolrServer(url);
server.addBean(alex);
server.commit();
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Это все о solr индексации с использованием технологии Hibernate. это довольно просто. Я объяснил вам основную идею о том, как его использовать. я получил этот пример из коммерческого приложения, в котором мы использовали описанный выше метод для реализации функции поиска