Solr의 POI를 사용하여 읽어들이는 기본 구조

5786 단어 Solrsolr7초학자

개시하다


이 글은 docomo advent 달력 15일째 보도입니다.
나는 POI 검색엔진 개발에 종사한다.
이번에는 Solr 횡단 POI 검색의 기본 구조를 사용하여 설명합니다.

개요

  • POI가 무엇인지·활용 사례
  • 검색엔진 Solr가 무엇인지
  • 어떻게 검색하셨어요
  • 정밀도를 높이는 방법
  • 이번 주제는'검색'행위의 배후에서 어떤 시스템이 운영되고 있는지입니다.
    전공 밖의 사람이라도 상상할 수 있다.
    말하자면, 내가 처음 '검색엔진 개발' 에 착수했을 때, 솔직히 전혀 기억이 나지 않았다
    검색엔진의 구성과 기술 정보를 이해하기 어렵기 때문이다.
    검색...검색창에 알고 싶은 걸 입력하면 마법처럼 원하는 답을 찾을 수 있지 않을까요?
    나는 줄곧 무슨 논리로 검색했는지 전혀 모른다고 생각하고 있다.

    Solr의 상세한 사용 방법과 상세한 검색 기술 등을 검색하면
    자세한 사람에게는 잘 알려진 사실들이 많을 텐데, 그들과 사귈 수 있다면 좋겠다.

    본문


    Poi가 뭐예요?


    "POI 검색 엔진"이라고 불리다
    아~ POI 검색을 위한 엔진이군, 대충 파악했군!얼마나 많은 사람들이 동감할까.
    인터넷학과의 전공자는 어떤 것들이 있습니까?POI?상호 연결점?가끔씩 이런 소리를 듣죠.
    여기서 말하는 POI는 Point of Interface(상호 연결점)가 아니라 Point of Interest(시설 정보)입니다.
    'POI'는'누군가가 편리하다고 생각하거나 흥미를 느끼는 특정 장소'를 정의한다.
    예를 들어 관광지, 쇼핑센터, 편의점 등은 모두 POI에 속한다.
    개인주택의 주소 등은 POI에 적용되지 않는다.
    즉, POI 검색엔진은 사용자가 알고 싶은 시설 정보를 검색할 때
    맞는 적절한 시설 정보를 검색해 답변한다.
    도코모가 제공하는 몇 가지 비즈니스 서비스 중에서도 POI 검색엔진이 사용된다.

    검색엔진 Solr가 뭐예요?


    도코모 내 POI 검색을 사용하는 서비스의 뒷면에는 아파치 솔러(이하 솔러)라는 전문 검색 엔진 서버가 사용됐다.
    솔러는 루틴이라는 자바 라이브러리를 기반으로 한 오픈소스의 검색엔진으로, 전 세계 개발자들이 적극적으로 기능 확장에 나섰다.(최신 버전: 7.5.02018/11 현재)

    전체 텍스트 찾기


    전체 텍스트 검색은 지정한 키워드(조회)를 데이터베이스의 어느 위치에 포함하고 검색 내용을 횡단하는 방법이다.
    예를 들어 데이터베이스로서 개 이름이 포함된 목록을 가정하십시오.
    "사용자가 목록에서""기와와와""라는 문자열을 검색하면 목록의 전체 텍스트가 검색되고 일치하는 문자열이 있으면 검색 결과가 반환됩니다."

    전체 텍스트 검색에는 주로'순차 검색 방식'과'전치 색인 방식'두 가지가 있다.
    자세한 설명은 생략되었지만 Solr는 색인 변환 방식과 같은 색인 검색 방식을 사용했습니다.

    어떻게 검색하셨어요?


    그렇다면 실제 Solr를 사용한 POI 검색은 어떻게 진행되었는지 함께 인상을 찾아보자.
    아까의 예에 따르면 POI 명칭의 목록을 모두 보고 일치된 명칭을 되돌려 주는 행위로 바뀌었다.
    사용자가 POI 검색을 하는 장면을 고려해 보세요.
    전제로 엔진 측에는 다음과 같은 POI 데이터가 있다.
    id
    POI_name
    1
    A전기 미래점
    2
    B 카메라 항북점
    3
    C전기점 횡수하점
    이용자: "아~ 이불 건조기가 너무 갖고 싶다. 주말에 요코하마에 가는 김에 가전제품 판매점에 들러라."
    위의 POI는 모두 요코하마에 있는 가전제품 양판점으로 좋은 결과로 모든 POI가 검색 결과로 반환될 것이라고 상상할 수 있다.
    사용자: "네,"요코하마 가전제품 판매점 "에서 검색하십시오.

    사용자 "검색 결과 없음..."
    이렇게 하면 POI 검색에서 시설 이름만 있는 정보 문자열이 일치하지 않아 잘 검색되지 않는 경우도 있다.
    다만 POI 정보는 시설 이름뿐만 아니라 주소(요코하마)와 카테고리(전기 양판점) 등 속성 정보가 있으면 예시된 POI를 검색할 수 있다.
    따라서 실제 POI 검색에서는 여러 속성 정보를 가로로 검색합니다.(이하 횡단 검색이라고 함)
    그러면 다른 검색 예를 사용하여 보다 복잡한 횡단 검색을 수행하는 방법을 설명합니다.
    횡단 검색은edismax(장내 최고 득점)이Solr의 기능을 이용한다.
    다음 검색 대상 데이터를 가지고 있는 상황을 고려합니다.poi_다음,name과 클래스 등 속성 정보
    필드.
    id
    poi_name
    도도부 현
    시내
    가장 가까운 역
    카테고리
    1
    섭곡점
    동경도
    섭곡구
    시부야역
    핸드폰 판매점
    2
    혜비수점
    동경도
    섭곡구
    혜비수역
    핸드폰 판매점
    3
    요코하마 Docomo 상점
    가나가와 현
    서구
    요코하마 역
    핸드폰 판매점
    이용자: "아, 핸드폰 배터리가 없어서 상점에 가고 싶어요.'섭곡의 DoCo Mo shop'."

    '섭곡의 Docomo 상점'이라는 검색어는 내부에서 형태소로 해석되어'섭곡','Docomo','상점'이라는 세 개의 검색어로 분할된다.는 접속어이므로 검색어에 포함되지 않습니다.
    각 필드에서 입력한 문자열과 일치하는 경우 X 점수가 붙습니다. 이러한 점수 정보는 단어의 수를 검색하면 점수가 붙습니다.
    점수의 높낮이 순서대로 대답하면 다음과 같은 검색 결과가 나온다.

    이용자: "시부야의 도코모를 알았어! 혜비수도 있다면 가는 길에 가보자."
    이렇게 하면 이름과 문자열이 일치하지 않더라도 다른 속성 정보를 사용하여 POI를 검색할 수 있습니다.
    이번엔 간략하게 썼고 실제로는 20개 이상의 영역을 넘나들며 검색을 하고 있습니다
    각 분야의 득점은 기계 학습의 매개 변수 조정을 통해 결정된다.

    정밀도를 높이는 방법


    사용자가 요구하는 정보는 정확하게 앞에 배열되어 검색엔진의 정밀도가 매우 높다.
    아무리 애매한 검색이라도 사용자
    이렇게 끝났습니다!나는 이 일을 알고 싶다! 
    이런 정보를 검색할 수 있도록 다양한 방법을 동원했다.
    그중 이번에 알려드리고 싶은 것은 사람의 기개를 이용한 검색입니다.
    예를 들어, 사용자
    '기요미즈사 가고 싶다~'
    내 생각엔
    이때 많은 사용자들이'청수사'에서 느끼는 인상은 아마도 (교토에 위치한) 청수사일 것이다.
    위에서 말한 바와 같이 문자열의 일치된 정보를 사용하여'청수사'를 검색하면 어떤 결과를 얻을 수 있을까.

    이용자: "지바에도 기요미즈사가 있는데... 교토에 있는 것을 알고 싶습니다."
    이렇게 문자열의 일치된 정보를 검색하면 같은 이름의 시설이 있을 때 어떤 순서로 그것을 되돌려 주느냐가 중요하다.
    하지만 엔진에 같은 문자열이 일치하는 POI에서 어떤 것이 중요한지 분위기에서도 알 수 있다.
    이곳에서는'시설인의 기개'정보를 이용한다.사전에 POI에서 지급한 것으로, 인기 시설의 점수가 높을수록 상위권에서 검색한다.
    '인기'는'그 시설 주변에 사람이 많으면 인기가 많을 텐데'와'그 시설에 대해 SNS에 자주 올리면 인기가 많을 텐데'라는 두 가지 관점에서 계산된다.
    그렇다면 아까'청수사'POI가 시설인 기질 정보를 부여받았다면 어떻게 됐을까.

    교토 시
    기쁘고 축하할 만하다.

    끝말


    앞으로 검색엔진에 접촉하고 싶은 사람, 검색의 구조를 전혀 모르는 사람
    각자 앞으로 검색할 때'오, 뒷면의 다양한 논리적 움직임이군요'.
    저에게 조금이라도 관심을 가져주셨으면 좋겠습니다. 저는 끝났습니다.
    읽어주셔서 감사합니다.

    참고서

  • 타전지자, 대수하모토, 오스기 나오토, 니시타일생, 니시모토 순평, 평하일소(2017) [개정 제3판] 아파치 솔러 입문] 기술평론사
  • 좋은 웹페이지 즐겨찾기