solr 6 의 solrJ 사용

1. 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()
	    );
	}
	
    }

좋은 웹페이지 즐겨찾기