solr 6 의 solrJ 사용
final String solrUrl = "http://127.0.0.1:8080/solr";
// solrClient ,
HttpSolrClient build = new HttpSolrClient.Builder(solrUrl)
.withConnectionTimeout(10000)
.withSocketTimeout(60000)
.build();
solr 버 전 별 solrj 생 성 방식 이 다 릅 니 다.
//solr4
//SolrServer solrServer = new HttpSolrServer("http://127.0.0.1:8080/solr");
//solr5 , url core :core1
//HttpSolrClient solrServer=new HttpSolrClient("http://127.0.0.1:8080/solr/core1");
//solr7 , url core :core1
HttpSolrClient solrServer= new HttpSolrClient.Builder("http://127.0.0.1:8080/solr/core1").build();
메모: solr 5 이후 URL 은 사용자 정의 핵심 이름 을 가리 키 고 있 습 니 다. 예 를 들 어 인 스 턴 스 이름 이 core 1 이면 URL 은?http://127.0.0.1:8080/solr/core1
solrJ 조회
/**
* @Description:
* @throws SolrServerException
* @throws IOException
*/
public void querySolr() throws SolrServerException, IOException{
//
HttpSolrClient solrClient= new HttpSolrClient.Builder(solr_url).build();
//
Map<String,String> query = new HashMap<String, String>();
//q sole ,*:*
query.put("q","*:*");
// MapSolrParams
MapSolrParams queryParams = new MapSolrParams(query);
// ,
QueryResponse response = solrClient.query(queryParams);
// doc
SolrDocumentList list = response.getResults();
for (SolrDocument solrDocument : list) {
System.out.println("id:" + solrDocument.get("id") + "
ame:"
+ solrDocument.get("name"));
}
//
solrClient.close();
}
solrJ 의 추가 색인
/**
* @throws IOException
* @throws SolrServerException
* @Description:
*/
public void solrAdd() throws SolrServerException, IOException{
//
SolrClient solrClient = new HttpSolrClient.Builder(solr_url).build();
// doc
SolrInputDocument solrInputDocument = new SolrInputDocument();
//
String id = UUID.randomUUID().toString();
String name = " ";
solrInputDocument.addField("id", id);
solrInputDocument.addField("name", name);
// client
UpdateResponse updateResponse = solrClient.add(solrInputDocument);
System.out.println(updateResponse.getElapsedTime());
//
solrClient.commit();
solrClient.close();
}
solrJ 삭제 인덱스
/**
* @Description: id
* @throws SolrServerException
* @throws IOException
*/
public void delete() throws SolrServerException, IOException{
//
SolrClient solrClient = new HttpSolrClient.Builder(solr_url).build();
// id
String id = "1";
solrClient.deleteById(id);
//
solrClient.commit();
solrClient.close();
}
JavaBean 바 인 딩
SolrJ 는 @ Field 주 해 를 통 해 암시 적 으로 문서 와 모든 종 류 를 변환 하 는 것 을 지원 합 니 다.모든 인 스 턴 스 변 수 는 자바 대상 에 해당 하 는 Solr 필드 를 표시 할 수 있 습 니 다.
managed - schema 파일 에 필드 managed - schema 를 추가 합 니 다. core 의 conf 디 렉 터 리 에 있 습 니 다.
<field name="user_name" type="text_ik" indexed="true" stored="true"/>
<field name="user_sex" type="string" indexed="true" stored="true"/>
<field name="user_age" type="string" indexed="true" stored="true"/>
<field name="user_like" type="string" indexed="true" stored="true" multiValued="true"/>
<field name="user_context" type="text_ik" indexed="true" stored="true"/>
javaBean 에 주석 @ Field ("value") value 를 field 의 name 과 같이 설정 하여 javabean 속성 을 field 에 표시 합 니 다.
public class User {
@Field("id")
private String id;
@Field("user_name")
private String name;
@Field("user_sex")
private String sex;
@Field("user_age")
private String age;
@Field("user_like")
private String[] like;
@Field("user_context")
private String context;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String[] getLike() {
return like;
}
public void setLike(String[] like) {
this.like = like;
}
public String getContext() {
return context;
}
public void setContext(String context) {
this.context = context;
}
public User(String id, String name, String sex, String age, String[] like,
String context) {
super();
this.id = id;
this.name = name;
this.sex = sex;
this.age = age;
this.like = like;
this.context = context;
}
public User(){
}
}
/**
* @Description: bean
* @throws IOException
* @throws SolrServerException
*/
public void addBean() throws IOException, SolrServerException{
//
SolrClient solrClient = new HttpSolrClient.Builder(solr_url).build();
// user
User user = new User();
user.setId(UUID.randomUUID().toString());
user.setName(" ");
user.setAge("22");
user.setSex(" ");
String[] like = {" "," "};
user.setLike(like);
user.setContext(" , ");
//
UpdateResponse updateResponse = solrClient.addBean(user);
//
solrClient.commit();
solrClient.close();
}
public void getBean() throws SolrServerException, IOException{
//
SolrClient solrClient = new HttpSolrClient.Builder(solr_url).build();
// solrQuery ,
SolrQuery solrQuery = new SolrQuery("user_name: *");
//
solrQuery.addField("id");
solrQuery.addField("user_name");
solrQuery.addField("user_sex");
solrQuery.addField("user_age");
solrQuery.addField("user_like");
solrQuery.addField("user_context");
//
solrQuery.setRows(15);
//
QueryResponse queryResponse = solrClient.query(solrQuery);
// doc
List<User> users = queryResponse.getBeans(User.class);
//
for (User user : users) {
System.out.println(
"id:"+user.getId()+"\t name:"
+ user.getName()+"\t age:"
+ user.getAge()+"\t sex:"
+ user.getSex()+"\t like:"
+ user.getLike()+"\t contest:"
+user.getContext()
);
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.