대머리개발자

[solr9] dev 설치 본문

개발이야기/오픈소스 설치

[solr9] dev 설치

대머리개발자 2024. 2. 23. 15:01
728x90

 

Elasticsearch이 현재 기준 거의 압승인듯 하다.

그럼에도 불구하고 비주류 친구를 선택했다. 힘내 친구야 너도 충분히 멋진 놈이여!!

 

백문불여일견 일단 설치

https://solr.apache.org/guide/solr/latest/deployment-guide/solr-in-docker.html

 

Solr in Docker :: Apache Solr Reference Guide

The Solr docker image runs Solr under tini, to make signal handling work better; in particular, this allows you to kill -9 the JVM. If you run docker run --init, or use init: true in docker-compose.yml, or have added --init to dockerd, docker will start it

solr.apache.org

 

version: '3'
services:
  solr:
    image: solr
    ports:
     - "8983:8983"
    volumes:
      - ./solr:/var/solr
    command:
      - solr-precreate
      - gettingstarted
docker-compose -f docker-solr.yml up -d

 

 

 

접속해보자!! 굿잡!

설치 하나는 진짜 귀가 막히게 쉽다.

 

 

🌟🌟 이제 데이터를 넣어 보고 검색을 진행 할 것이다.

 

잘 모르지만 solr는 core기준으로 데이터를 collect 하는 것 같다.

도커컴퍼즈로 구성할 때 gettingstarted를 같이 만들었지만 새로운 core를 만들고 색인 데이터를 인입해보자.

 

LNB 메뉴 "Core Admin"을 통해서 진행하면 초기화 실패가 발생한다. 

 

도커 접속 해서 콘솔로 진행!

solr create -c core_name

 

뭔가 권장되지 않는다고 하지만 테스트이기 때문에 일단 PASS

 

관리자 메뉴에서 생성확인(myDoc)

 

 

데이터를 인입하는 방법이 여러가지가 있겠지만 Client API를 통해서 진행

 

Solr 버전과 동일한 버전으로 디펜더쉬!

implementation("org.apache.solr:solr-solrj:9.5.0")
fun main(){
    val urlString = "http://localhost:8983/solr/myDoc"
    val solrClient = Http2SolrClient.Builder(urlString).build()
    //doc 객체 생성
    val doc = SolrInputDocument()

    //doc객체에 필드 추가
    doc.addField("id", "005")
    doc.addField("name", "title")
    doc.addField("content", "11111")
    //솔라에 doc 추가
    solrClient.add(doc)
    //commit
    solrClient.commit()
    println("Documents added")
}

 

 

쿼리 메뉴를 통해서 인입한 데이터를 확인해보자!

 

 

API 로 조회...

fun searchQuery(solrClient: Http2SolrClient){
    val query = SolrQuery()
    query.setQuery("contenta:*색의*")

    query.addField("id")
    query.addField("name")
    query.addField("contenta")

    val queryResponse = solrClient.query(query)

    //응답으로 온 객체의 모든 문서 출력
    val docs: SolrDocumentList = queryResponse.getResults()
    for(doc in docs) {
        println(doc)
    }
}

 

모든 것이 좋았다.

 

사실 엘라스틱으로 진행하고자 했다.

많은 래퍼런스가 있고.....있고...있고..

But  우리 기준으로 배보다 배꼽이 더 클것 같은 느낌

 

아무리 내 돈으로 지불하는 것이 아니라고 하더라도 절약할 수 있는 비용은 Cut 해야지ㅎ

키바나를 붙여서 완벽하게 활용할 수 있겠지만 약 투머취

 

나만 회사 비용을 생각한다.ㅋㅋ

 

 

 

728x90

'개발이야기 > 오픈소스 설치' 카테고리의 다른 글

[solr9] - core 생성  (0) 2024.02.29
[solr9] 색인..  (0) 2024.02.27
K8S - 노드 이전!  (0) 2024.02.22
그라파나 + Loki Retention 설정  (0) 2024.02.14
NKS 핀포인트 - 운영  (0) 2024.01.17