책정보로 검색한 결과 :: 시소커뮤니티[SSISO Community]
 
SSISO 카페 SSISO Source SSISO 구직 SSISO 쇼핑몰 SSISO 맛집
추천검색어 : JUnit   Log4j   ajax   spring   struts   struts-config.xml   Synchronized   책정보   Ajax 마스터하기   우측부분

회원가입 I 비밀번호 찾기


SSISO Community검색
SSISO Community메뉴
[카페목록보기]
[블로그등록하기]  
[블로그리스트]  
SSISO Community카페
블로그 카테고리
정치 경제
문화 칼럼
비디오게임 스포츠
핫이슈 TV
포토 온라인게임
PC게임 에뮬게임
라이프 사람들
유머 만화애니
방송 1
1 1
1 1
1 1
1 1
1

책정보로 검색한 결과
등록일:2008-04-07 15:02:57
작성자:
제목:[책정보] 루씬 인 액션(Lucene in ACTION) - 오픈소스 자바 검색엔진


루씬 인 액션(Lucene in ACTION) - 오픈소스 자바 검색엔진


큰도서이미지보기
Erik Hatcher , Otis Gospodnetic
강철구 , 이문호 , 주성진
에이콘
30,000원27,000원 (10%↓)
810원 (3%)
8989975786 / 9788989975786
번역서 / 2005-09-28 / 480 쪽






위 도서의 원서

Lucene in Action I Manning Publications I Erik Hatcher

주제별 분류

프로그래밍 > 응용 프로그래밍 > 프로그래밍 일반

네트워크/인터넷 > 정보검색

도서 지수 (100 Point 만점)

프로그래밍 일반 종합지수
8 p 8 위
프로그래밍 일반 월간지수
12 p 8 위

  
응용 프로그래밍 월간지수 순위   1위. 윈도우즈 API 정복(개정판) : 제1권
  2위. 윈도우즈 API 정복(개정판) : 제2권
  3위. Debugging Applications for Microsoft .NET and Microsoft Windows[재출간판]

  
프로그래밍 일반 월간지수 순위   1위. 프로그래밍 수련법
  2위. 생각하는 프로그래밍[재출간판]
  3위. The art of computer programming 3: 정렬과 검색

 
  
북리스트에 가장많이 구매된 응용 프로그래밍도서   1위. 생각하는 프로그래밍[재출간판]
  2위. Windows API 정복
  3위. Debugging Applications for Microsoft .NET and Microsoft Windows[재출간판]
  4위. API로 배우는 Windows 구조와 원리
  5위. Windows 시스템 실행파일의 구조와 원리

  
찜리스트에 가장많이 찜된 응용 프로그래밍도서   1위. 생각하는 프로그래밍[재출간판]
  2위. Debugging Applications for Microsoft .NET and Microsoft Windows[재출간판]
  3위. Windows 시스템 실행파일의 구조와 원리
  4위. Windows API 정복
  5위. 윈도우즈 API 정복(개정판) : 제1권

 


도서소개 독자서평 목차보기 저자소개 기획도서  

도서특징
루씬 창시자, 더그 커팅이 추천한 필독서! 정보검색엔진과 솔루션 개발을 위한 실무서! 한국어판 특별부록 ‘루씬 한글 분석기’ 수록!
루 씬은 확장성이 좋고 빠른 검색엔진이며 성능이 아주 훌륭하고 사용하기도 너무나 간편해서, 여러 오픈소스 프로젝트 중에서도 보석 같은 존재이다. ≪루씬 인 액션 - 오픈소스 자바 검색엔진≫은 루씬을 사용하는 데 꼭 필요한 필독서이다. 이 책에는 MS 워드, PDF, HTML, XML 등은 물론 여러 형태의 자료를 색인하는 방법에 대해 설명한다. 뿐만 아니라 검색, 결과 정렬, 결과 필터링, 결과 문자열 하일라이팅 등도 다룬다. 루씬은 이미 다양한 분야에서 역량을 발휘하고 있다. 예를 들어 포춘誌 100대 기업의 다양한 토론 사이트나 상용 이슈 트래킹(issue tracking) 소프트웨어, 마이크로소프트의 아웃룩 검색 소프트웨어, 그리고 최고 수십억 개의 웹페이지를 색인할 수 있도록 설계된 너치와 같은 웹 검색엔진에서도 사용한다. 또 아카마이 Akamai, 오버추어 Overture, 테크노라티 Technorati, 핫잡스 HotJobs, 에피퍼니 Epiphany, 페덱스 FedEx, 메이요 클리닉 Mayo Clinic, MIT, 뉴사이언티스트 New Scientist Magazine, 기타 여러 사이트에서 루씬을 사용하고 있다. 소프트웨어에 검색 기능을 추가하는 작업은 이제 그리 어렵지 않게 됐다. ≪루씬 인 액션 - 오픈소스 자바 검색엔진≫은 실무에 적용하기 좋은 다양한 예제와 설명으로 훌륭한 길라잡이가 되어줄 것이다.



[이 책에서 다루는 내용]

  • 루씬을 여러분의 프로그램에 어떻게 통합할 것인가
  • 다양한 문서 형식을 지원할 수 있는 문서 변환 프레임웍
  • 너치, 더서버사이드, jGuru 등의 사이트에 대한 사례 조사
  • 펄, 파이썬, C#/닷넷, C++ 등의 언어로 만들어진 루씬
  • 정렬, 필터링, 텀 벡터, 다중, 원격 색인 검색
  • 최신 SpanQuery 관련 클래스, 쿼리 분석기 확장, 결과 항목 수집
  • 성능 측정과 최적화
  • 루씬 애드온(결과 하일라이팅, 유의어 참조 등)
  • 한글 자료에 루씬을 어떻게 적용할 것인가



    [이 책의 구성]

    1부 기본편 (Core Lucene)
    1 부 기본편에서는 루씬의 기본 기능을 살펴본다. 루씬 홈페이지에서 루씬 프로그램 JAR 파일을 다운받아 직접 사용해 볼 수 있다. 1장 루씬과의 첫 만남에서는 루씬에 대한 개괄적인 설명과 함께 색인과 검색 기능을 갖는 간단한 프로그램을 살펴본다. 색인과 검색 등의 내용에 대한 자세한 설명은 다음 장에 차례로 이어지는데, 2장 색인에서는 자료와 문서를 색인하는 방법을, 3장 애플리케이션에 검색 추가하기에서는 기본적이고도 중요한 루씬의 검색 기능을 배울 수 있다. 4장 분석에서는 2장에서 간단히 다뤘던 내용을 확장해, 색인하고 검색하고자 하는 원문을 루씬이 어떻게 처리하는지를 알아본다. 루씬의 가장 중요한 기능은 검색이므로, 5장 고급 검색기법에서 루씬에 들어있는 좀더 다양한 검색 기능을 배운다. 마지막으로 6장 확장 검색에서는 여러분이 원하는 독특한 기능을 루씬과 연동할 수 있도록 루씬을 확장하는 방법을 살펴본다.

    2부 고급편 (Applied Lucene)
    루 씬은 그 자체로 보면 단순한 JAR 파일 하나일 뿐이지만, 어떻게 사용하느냐에 따라 여러분에게 아주 유용한 툴이 될 수 있다. 2부 고급편에서는 루씬을 활용할 수 있는 다양한 방법을 살펴본다. 대부분의 프로젝트에서 마이크로소프트 워드 문서, PDF 문서, HTML 문서, XML 문서 등을 처리해야 하는 경우가 많은데, 7장 일반적인 문서 포맷 파싱에서는 독립적으로 재사용 가능한 문서 변환 프레임웍을 구성해서 다양한 문서의 내용을 루씬의 색인에 추가하는 방법을 살펴본다. 8장 툴과 확장기능에서는 루씬을 보조해서 추가적인 기능을 처리할 수 있도록 도와주는 도구들 가운데 특히 훌륭한 몇 가지를 추려서 살펴본다. 루씬 자체를 개발한 주 언어는 자바이지만 다른 언어에서도 루씬의 강력한 기능을 활용할 수 있도록 여러 언어로 만들어졌는데, 9장 언어별 루씬에서는 이처럼 루씬을 다른 프로그래밍 언어, 예를 들어 C++, C#, 파이썬 등의 언어로 만들어낸 프로젝트나 제품들을 살펴본다. 마지막으로 다양한 분야의 사람들이 기고한 10장 사례 연구를 통해 루씬의 능력을 활용해 목표를 달성했던 프로젝트에서 도대체 루씬을 어떻게 사용했는지에 대한 자세한 내막도 들어보자.



    [이 책의 대상]

    자 신들의 제품이나 솔루션에 강력한 검색 기능을 더하려는 개발자들은 이 책을 꼭 읽어야 한다. 또 단순히 루씬이 어떤 것인지 궁금한 사람에게도 훌륭한 정보를 제공하며, 정보 검색(Information Retrieval) 기술에 대해 공부하는 독자에게도 좋은 교재가 될 수 있다. 그리고 당장은 알아둘 필요가 없다 하더라도, 읽어두면 정보 검색이라는 트렌드에 부응하는 지식을 쌓을 수 있다. 이 책에서는 아파치 프로젝트 가운데 하나인 루씬, 즉 자바 버전의 루씬을 중점적으로 다루며, 대부분의 예제코드도 자바로 작성했다. 따라서 자바에 익숙하다면 아주 편안하게 내용을 이해할 수 있을 것이며, 여러 가지 자바 프로그래밍 경험은 이 책을 읽는 데 큰 도움이 된다. 자바 버전의 루씬이 아니고 C++나 C#, 파이썬, 펄 등의 언어로 루씬을 사용 해도 기본개념과 주요기능은 자바 버전과 거의 같으므로 별다른 어려움 없이 적용할 수 있으리라 본다.



    [추천의 글]

    루 씬은 순전히 개인적인 목적으로 시작했습니다. 1997년쯤이었죠. 직업도 맘에 들지 않고 해서 내 스스로 뭔가 만들어서 시장에 진출해봐야겠다는 생각을 했습니다. 또 자바라는 새로운 언어가 업계에서 인기를 끌고 있었기에 자바를 공부해볼 만한 프로젝트가 필요하기도 했었죠. 이전의 경험과 경력으로 검색엔진을 어떻게 구성해야 한다는 것은 머리 속에 어느 정도 들어 있는 상태였기 때문에 자바로 검색엔진을 만들어야겠다고 생각했습니다. 그리고는 루씬을 시작했죠. 그러던 2000년쯤 내 스스로가 사업에는 적성이 맞지 않다는 걸 깨달았습니다. 라이센스니 계약서 등을 신경 쓰고 관리하는 데는 별다른 관심이 없었죠. 관심이 없으니 제대로 해낼 리가 있었겠습니까? 더군다나 그런 상태에서 사람을 뽑아 회사를 운영하는 건 안될 일이었습니다. 전 그저 소프트웨어를 만드는 게 좋았을 뿐이지, 파는 데는 관심이 별로 없다고 판단했습니다. 그래서 유명한 오픈소스 개발 커뮤니티인 소스포지에 루씬 프로젝트를 올려보기로 했습니다. 과연 오픈소스로 공개하면 내가 원하는 방식으로 일을 할 수 있을지 궁금했습니다. 루씬을 오픈소스로 공개하자 몇몇 개발자들이 루씬을 사용하기 시작했습니다. 2001년에는 아파치 재단에서 루씬을 아파치 프로젝트에 참여시키는 게 어떠냐는 제안을 해왔고, 제안을 받아들여 아파치 자카르타 프로젝트에 참여하게 되었죠. 루씬 개발자 메일링 리스트에서 루씬을 개발하고 사용하는 개발자간의 의견 전달 건수가 늘어나고, 개발자들은 자신들이 만든 각종 코드를 루씬에 추가하기 시작했습니다. 그렇지만 대부분 루씬을 활용하는 수준에서 그치는 프로그램이었고 루씬의 핵심에 손을 대는 사람은 저 혼자였습니다. 여전히 루씬은 여러 개발자가 참여해 새로 만들어가는 과정에 있었다고 생각합니다. 2004년이 되자 루씬 관련 개발자 가운데 루씬의 핵심 부분까지 충분히 이해하는 사람들이 상당히 많아졌습니다. 요즘은 루씬 자체를 개발하는 데 저는 그다지 관여하지 않음에도 불구하고 다른 루씬 개발자들이 계속해서 루씬을 발전시키고 있습니다. 처음 개발된 이후 몇 년이 흐르는 동안 루씬은 C++을 비롯해 C#, 펄, 파이썬 등의 언어로도 포팅되었고 자바를 비롯한 이 모든 '루씬' 검색엔진은 초기에 구상했던 것보다 훨씬 많이 사용되고 있음을 실감합니다. 어떤 언어로 만들어졌건 간에 루씬은 이제, 포춘誌 선정 100대 기업들과 상용 버그추적 시스템, 마이크로소프트의 아웃룩 이메일 검색 소프트웨어, 수십억 페이지의 인터넷 사이트를 검색할 수 있는 인터넷 검색시스템까지 널리 사용되고 있으니 말이죠. 뿐만 아니라 요즘은 사람들이 저를 '루씬 창시자'라고 부르기도 하고, 자신들의 프로젝트에서 루씬을 어떻게 활용하고 있는지 수다를 떨기도 합니다. 그렇게 여러 얘기를 듣다 보면 제가 상상했던 루씬의 응용 분야를 뛰어 넘어 정말 다양한 분야에서 루씬을 활용하고 있다는 생각도 많이 듭니다. 예전 방식 그대로 사업을 했더라면, 지금과 같은 루씬의 성공은 이루지 못했을 것입니다. 요즘 들어 소프트웨어 개발자들은 대부분 오픈소스를 선호합니다. 또 제품을 사고는 궁금한 걸 질문하기 위해 전화를 걸어 고객지원센터 직원에게 문제를 설명하느라 진땀빼는 일은 하려들지 않습니다. 대신 공개된 소스코드를 보면서 뭐가 어떻게 돌아가는지 직접 파악해냅니다. 그게 개발자의 정서에는 더 맞는 방법이라고 생각합니다. 만약 소스코드를 봐도 이해할 수 없다면, 루씬 메일링 리스트에서 수많은 전문 루씬 개발자들이 서로 의견을 교환하고 질문에 답합니다. 물론 충분하진 않을 수 있지만, 루씬 메일링 리스트가 웬만한 상용 고객지원 서비스보다 훨씬 낫다고 자부합니다. 루씬처럼 제대로 자리잡은 오픈소스 커뮤니티가 개발자들을 얼마나 편하게 해주는지도 새삼 느끼고 있습니다. 다시 말하지만, 루씬을 오픈소스로 공개한 이후 얼마나 발전했는지 이루 헤아릴 수 없습니다. 제가 처음 시작한 게 맞기는 하지만, 수많은 루씬 커뮤니티 참여자들과 개발자들의 도움 덕분에 지금의 루씬이 존재하는 것입니다. 루씬으로 무엇을 할 수 있을까요? 차세대 루씬이라면 어떤 모습일까요? 이 책을 통해 이미 루씬 커뮤니티에 참여한 셈이고, 나아가 루씬과 정보 검색 전문가가 될 여러분이 직접 미래를 그려볼 수 있다고 생각합니다. 즐거운 여행을 기원합니다!

    - Doug Cutting 루씬과 너치 프로젝트 창시자

  • 저자소개
    Erik Hatcher
    이 미 여러 분야에서 다양한 프로그래밍 언어를 사용해 소프트웨어를 만들었으며, 스티브 로런(Steve Loughran)과 함께 업계에서 알아주는 책 중 하나인 Java Development with Ant(Manning, 2002)을 쓰기도 했다. 첫 책인 Java Development with Ant를 출판한 이후 No Fluff, Just Stuff 심포지엄이나 JavaOne 컨퍼런스, O'Reilly의 오픈 소스 컨벤션(Open Source Convention), 오픈 소스 컨텐트 관리 컨퍼런스(Open Source Content Management Conference), 각종 자바 사용자 그룹 모임등에서 강연을 해왔다. 현재 아파치 소프트웨어 재단의 회원으로 활동중이며 루씬, 앤트, 태피스트리 등의 프로젝트에서 왕성하게 활동 중이다.

    Otis Gospodnetic
    오 티스 고스포드네티치(Otis Gospodnetic)는 4년 넘도록 루씬 프로젝트에 참여했으며, jGuru의 루씬 FAQ8를 운영하고 있다. 현재 학생과 선생님을 위한 솔루션을 개발하는 와이어리스 제너레이션(Wireless Generation)이라는 회사에서 소프트웨어 엔지니어로 일하고 있다. 틈틈이 작업한 심피(Simpy, http://www.simpy.com)라는 북마크 관리 사이트9도 운영하고 있고, O'Reilly 네트워크10와 IBM의 디벨로퍼웍스(developerWorks)에 다양한 글을 기고하고 있다.



    [역자 소개]

    강철구
    아 주대학교 컴퓨터공학과 대학원에서 컴퓨터 비젼(영상 인식)을 전공했고, 교육부 종합생활기록부 프로젝트뿐 아니라, B2B 엔진, 정부 문서유통 소프트웨어, 검색엔진, 홈네트워킹 서비스 등의 개발을 비롯한 다양한 프로젝트에 참여했다. 현재는 루씬을 이용한 검색 솔루션을 개발하고 있으며, 인공지능과 영상 및 정보 검색 등의 다양한 관심사와 관련한 새로운 비즈니스를 준비하고 있다.

    주성진
    아 주대학교 화학공학과를 졸업했고, 5년간 한국정보공학(주)에서 검색엔진 레이다와 제품군을 개발했다. 지금은 유해정보차단 서비스를 하고 있는 플랜티넷㈜에서 차세대 유해차단서비스를 개발 중이다. 영화와 책을 삶의 일부분으로 삼아 지내면서 근래에는 경영/마케팅 서적에 푹 빠져서 생활 중이다. 장래에는 기획형 엔지니어로 성장하는 게 목표이다.

    이문호
    국 립 경상대학교 컴퓨터과학과 및 동 대학원 전자계산학과(영상처리 전공)를 졸업했으며, 내용기반 영상 검색엔진(CBIR), 정보검색엔진과 그룹웨어, 포탈 관련 개발 경험을 쌓았다. 1997년부터 영상처리 홈페이지(http://www.conv2.com)를 운영하면서 영상처리 관련 자료를 제공하며 독자들이 올리는 문의에 답변하는 재미로 지내고 있다. Gonzalez 교수의 저서와 맞먹는 영상처리 고급서를 언젠가 내고 말 거라는 소박한 꿈을 갖고 있으며, 대표 저서로는 ≪Java를 이용한 디지털 영상처리≫ 등이 있다.



    [역자 서문]

    1999 년 기업용 정보검색엔진을 접했을 때의 첫 느낌은 “참 신기하다”는 것이었습니다. 그때 웹 검색엔진으로는 야후, 엠파스, 한미르, 네이버 등이 있었으며, 검색엔진 시장은 아직 열려 있지도 않았을 때였습니다. 그만큼 정보검색엔진이란 용어는 낯설면서도 신선한 느낌으로 다가왔습니다. 많은 시간이 흘러 구글은 검색엔진의 강자로 올라섰고, 여러 업체에서 검색엔진을 이용해 많은 수익을 창출하고 있습니다. 학교 다닐 때 도서관에서 도서를 검색했던 수준을 넘어 개인화를 반영한 검색엔진으로 성장을 거듭하고 있지만, 아직 우리나라에서 한글의 특성을 반영한 검색엔진을 개발하는 일이 쉽지만은 않습니다. 그런 면에서 정보 검색엔진과 솔루션을 개발하는 과정에서 필요한 실무서가 절실한 상태였습니다. 때마침 더그 커팅이 개발한, 강력하고 유연한 자바 오픈소스 검색엔진 루씬을 다룬 실무서인 ≪Lucene in Action≫을 접했습니다. 이 책을 번역하면서 많은 시행착오를 거치기도 했지만, 정보검색엔진 분야에 있는 역자로서 큰 즐거움을 만끽했습니다. 이제 독자 여러분에게 그 즐거움을 돌려 드리고자 합니다. 자바 프로그래머라면 아파치 자카르타 프로젝트를 한번쯤 들어봤을 것입니다. 루씬은 아파치 자카르타 프로젝트에 속해 있다가 최근 아파치의 최상위 프로젝트로 승격됐습니다. 막강한 기능에도 불구하고 국내에는 아직 널리 알려져 있지 않았습니다. 루씬을 프로젝트에 적용하려는 분들께 ≪루씬 인 액션 - 오픈소스 자바 검색엔진≫을 권해드립니다. 이 책, ≪루씬 인 액션 - 오픈소스 자바 검색엔진≫은 루씬 최신 버전을 기준으로 색인, 검색, 분석기, 실제 사례 등을 자세하게 소개한 실무서입니다. 아울러 이 책을 읽다 보면 우리가 알 수 없었던 정보검색엔진의 숨겨진 기능이 어떤 것인가를 알게 될 것입니다. 그리고 루씬이 원래 영어권에 적합하게 구성돼있고 동양권 언어에 대한 지원이 미약한 점을 고려해, 한글처리와 관련한 자료를 한국어판 특별 부록으로 실어 국내에서도 루씬을 폭넓게 사용할 수 있는 기반이 될 수 있게 배려했습니다. 여러분이 자신만의 검색엔진을 만드는데 이 책이 훌륭한 길라잡이가 되어 줄 것이라 믿어 마지않습니다. 다만 다른 분야도 마찬가지이지만, 루씬의 기능을 이해하고 코드로 옮겨서 결과를 직접 확인하는 것에 그치지 말고 정보검색엔진과 관련한 지식을 꾸준히 습득하면서 스스로 좋은 작품을 만들 수 있도록 노력해야 좋은 결과물을 얻을 수 있음을 당부드리고 싶습니다. 루씬과 함께 즐거운 여행이 되시길 바랍니다.

    독자서평
    검색엔진 개발에 관심이 많은 분들께 좋은 도서..
         - 오광섭님, 2008-03-08 작성    오광섭님의 모든서평 I 블로그

    검색엔진의 개념을 이해하고 실제 살펴볼 수 있는 책
         - 김종민님, 2007-10-11 작성    김종민님의 모든서평 I 블로그

    책의 내용이 약간은 부족한듯
         - 김도훈님, 2005-12-15 작성    김도훈님의 모든서평 I 블로그

    검색엔진을 개발하려면...
         - 박민규님, 2005-10-19 작성    박민규님의 모든서평 I 블로그

    '한글 분석기'에 대한 부연 설명입니다.
         - 이문호님, 2005-10-12 작성    이문호님의 모든서평 I 블로그

    Lucene은 정보검색(Information Retrieval)의 배움터
         - 전희원님, 2005-10-11 작성    전희원님의 모든서평 I 블로그


    기획도서 (이 도서는 아래의 기획리스트에 선정되었습니다)
    강컴 Choice [총 306종]

    독자서평
    검색엔진 개발에 관심이 많은 분들께 좋은 도서..
         - 오광섭님, 2008-03-08 작성    오광섭님의 모든서평 I 블로그

    검색엔진의 개념을 이해하고 실제 살펴볼 수 있는 책
         - 김종민님, 2007-10-11 작성    김종민님의 모든서평 I 블로그

    책의 내용이 약간은 부족한듯
         - 김도훈님, 2005-12-15 작성    김도훈님의 모든서평 I 블로그

    검색엔진을 개발하려면...
         - 박민규님, 2005-10-19 작성    박민규님의 모든서평 I 블로그

    '한글 분석기'에 대한 부연 설명입니다.
         - 이문호님, 2005-10-12 작성    이문호님의 모든서평 I 블로그

    Lucene은 정보검색(Information Retrieval)의 배움터
         - 전희원님, 2005-10-11 작성    전희원님의 모든서평 I 블로그

    도서목차
    1부 기본편
    1장 루씬과의 첫 만남

    1.1 정보구성 방법과 접근 방법의 발전
    1.2 루씬이란?
    1.2.1 루씬은 이것이다!
    1.2.2 루씬의 역할
    1.2.3 루씬이 지나온 길
    1.2.4 누가 루씬을 사용하나?
    1.2.5 사용 가능한 언어
    1.3 색인과 검색
    1.3.1 색인이 뭐지? 왜 중요할까?
    1.3.2 그렇다면 검색은 무엇인가?
    1.4 루씬 돌려보기
    1.4.1 색인 만들기
    1.4.2 색인 내의 검색
    1.5 색인 주요 클래스
    1.5.1 IndexWriter
    1.5.2 Directory
    1.5.3 Analyzer
    1.5.4 Document
    1.5.5 Field
    1.6 핵심 검색 클래스
    1.6.1 IndexSearcher
    1.6.2 Term
    1.6.3 Query
    1.6.4 TermQuery
    1.6.5 Hits
    1.7 다른 검색엔진은 어떤 것이 있나?
    1.7.1 IR 라이브러리
    1.7.2 색인/검색 소프트웨어
    1.7.3 그 밖의 정보
    1.8 요약

    2장 색인
    2.1 색인에 대한 이해
    2.1.1 텍스트 변환
    2.1.2 분석
    2.1.3 색인에 쓰기
    2.2 색인 기본 작업
    2.2.1 색인에 Document 추가
    2.2.2 색인에서 Document 삭제하기
    2.2.3 Document 복구
    2.2.4 색인의 Document 갱신
    2.3 Document와 Field에 가중치 지정
    2.4 날짜 색인
    2.5 숫자 색인
    2.6 결과 정렬에 사용할 Field 색인
    2.7 색인 과정 제어
    2.7.1 색인 성능 튜닝
    2.7.2 메모리 기반 색인: RAMDirectory
    2.7.3 필드 크기 제한: maxFieldLength
    2.8 색인 최적화
    2.9 동시성, 스레드 안전성, 락킹 문제
    2.9.1 동시성 규칙
    2.9.2 스레드 안전성
    2.9.3 색인 락
    2.9.4 색인 락의 비활성화
    2.10 색인
    2.11 요약

    3장 애플리케이션에 검색 추가하기
    3.1 간단한 검색 기능 구현
    3.1.1 특정 단어 검색
    3.1.2 사람이 입력한 질의 표현식 읽기: QueryParser
    3.2 IndexSearcher
    3.2.1 Hits 활용
    3.2.2 Hits를 이용한 페이징
    3.2.3 색인을 메모리에 올리기
    3.3 루씬의 검색결과 순위점수 계산법
    3.3.1 루씬, 설명할 게 많다!
    3.4 프로그램으로 질의 만들기
    3.4.1 텀 검색: TermQuery
    3.4.2 범위 검색: RangeQuery
    3.4.3 문자열 검색: PrefixQuery
    3.4.4 질의 결합: BooleanQuery
    3.4.5 문장 검색: PhraseQuery
    3.4.6 와일드카드 검색: WildcardQuery
    3.4.7 유사 텀 검색: FuzzyQuery
    3.5 질의 표현식 파싱: QueryParser
    3.5.1 Query.toString()
    3.5.2 불린 연산자
    3.5.3 그룹화
    3.5.4 필드 선택
    3.5.5 범위 검색
    3.5.6 문장 질의
    3.5.7 와일드카드와 접두어 질의
    3.5.8 퍼지 질의
    3.5.9 가중치 질의
    3.5.10 QueryParser에 대한 고민
    3.6 요약

    4장 분석
    4.1 분석기 사용
    4.1.1 색인 분석
    4.1.2 QueryParser와 분석
    4.1.3 파싱과 분석: 분석의 한계
    4.2 분석기 상세 분석
    4.2.1 토큰의 구성
    4.2.2 TokenStream의 내부 구조
    4.2.3 분석기 작동 확인
    4.2.4 필터링 순서의 중요성
    4.3 내장 분석기 활용
    4.3.1 StopAnalyzer
    4.3.2 StandardAnalyzer
    4.4 키워드 필드 활용
    4.4.1 또 다른 KeywordAnalyzer
    4.5 비슷한 발음 검색
    4.6 유의어, 별명, 동의어 처리
    4.6.1 토큰 위치 확인
    4.7 스테밍 분석
    4.7.1 빈공간
    4.7.2 통합
    4.7.3 문제의 빈 공간
    4.8 언어 문제
    4.8.1 유니코드와 인코딩
    4.8.2 비영어권 텍스트 분석
    4.8.3 아시아권 텍스트 분석
    4.8.4 짜이지엔
    4.9 너치의 분석 방법
    4.10 요약

    5장 고급 검색기법
    5.1 검색 결과 정렬
    5.1.1 정렬
    5.1.2 유사도 정렬
    5.1.3 색인 순서 정렬
    5.1.4 필드 정렬
    5.1.5 정렬순서 변경
    5.1.6 다중필드 정렬
    5.1.7 정렬필드 타입 선택
    5.1.8 지역화 설정
    5.1.9 성능 효과
    5.2 PhrasePrefixQuery 사용
    5.3 동시에 여러 필드 검색
    5.4 루씬의 새로운 기능: 스팬질의(Span queries)
    5.4.1 스팬 블록 생성: SpanTermQuery
    5.4.2 필드 시작부분의 스팬
    5.4.3 서로 인접한 스팬
    5.4.4 일치하는 결과에서 중복되는 스팬 제외
    5.4.5 스팬 확장
    5.4.6 SpanQuery와 QueryParser
    5.5 검색 필터링
    5.5.1 DateFilter
    5.5.2 QueryFilter
    5.5.3 보안 필터
    5.5.4 QueryFilter의 대안
    5.5.5 필터 결과 캐시
    5.5.6 기본 필터 이외의 것들
    5.6 다중 색인에 대한 통합 검색
    5.6.1 MultiSearcher
    5.6.2 ParallelMultiSearcher를 이용한 멀티스레드 검색
    5.7 텀벡터 자세히 보기
    5.7.1 비슷한 책 찾기
    5.7.2 카테고리 자동분류
    5.8 요약

    6장 확장 검색
    6.1 사용자정의 정렬
    6.1.1 사용자정의 정렬에 사용된 값 읽기
    6.2 사용자정의 HitCollector
    6.2.1 BookLinkCollector 소개
    6.2.2 BookLinkCollector
    6.3 QueryParser 확장
    6.3.1 QueryParser 기능 변경
    6.3.2 퍼지 검색과 와일드카드 검색 차단
    6.3.3 숫자 범위 질의 처리
    6.3.4 순서있는 구문 질의
    6.4 사용자정의 필터 사용
    6.4.1 필터링 질의
    6.5 성능 테스트
    6.5.1 검색 속도 테스트
    6.5.2 부하 테스트
    6.5.3 다시 QueryParser
    6.5.4 성능 테스트의 교훈
    6.6 요약

    2부 고급편
    7장 일반적인 문서 포맷 파싱

    7.1 다양한 문서 다루기
    7.1.1 공통 DocumentHandler 인터페이스 생성
    7.2 XML 색인
    7.2.1 SAX를 이용한 파싱 및 색인
    7.2.2 다이제스터를 이용한 파싱과 색인
    7.3 PDF 문서 색인
    7.3.1 PDFBox를 이용한 텍스트 추출과 색인
    7.3.2 내장된 루씬 지원 기능
    7.4 HTML 문서 색인
    7.4.1 HTML 소스 데이터 가져오기
    7.4.2 JTidy
    7.4.3 NekoHTML
    7.5 마이크로소프트 워드 문서 색인
    7.5.1 POI 이용
    7.5.2 TextMining.org의 API
    7.6 RTF 문서 색인
    7.7 일반 텍스트 문서 색인
    7.8 문서 처리 프레임웍 만들기
    7.8.1 FileHandler 인터페이스
    7.8.2 ExtensionFileHandler
    7.8.3 FileIndexer 어플리케이션
    7.8.4 FileIndexer 활용
    7.8.5 FileIndexer의 장애요소와 프레임웍을 확장하는 방법
    7.9 다른 텍스트 추출 도구
    7.9.1 문서 관리 시스템과 서비스
    7.10 요약

    8장 툴과 확장
    8.1 루씬 샌드박스
    8.2 색인과 대화
    8.2.1 루클리: 명령행 인터페이스
    8.2.2 루크: 루씬 색인 툴박스
    8.2.3 리모: Lucene Index Monitor
    8.3 분석기, 토크나이저, 토큰필터
    8.3.1 SnowballAnalyzer
    8.3.2 샌드박스 분석기 얻기
    8.4 앤트와 루씬을 통한 자바 개발 작업
    8.4.1 태스크 활용
    8.4.2 사용자정의 문서 핸들러 구현
    8.4.3 설치
    8.5 자바스크립트 브라우저 유틸리티
    8.5.1 자바스크립트 질의 구성과 검증
    8.5.2 특수 문자 처리
    8.5.3 자바스크립트 사용방법
    8.6 워드넷과 유의어
    8.6.1 유의어 색인 구축하기
    8.6.2 워드넷 유의어를 분석기로 옮기기
    8.6.3 루씬으로 전화걸기
    8.7 검색어 하일라이팅
    8.7.1 CSS와 연계한 하일라이팅
    8.7.2 Hits 하일라이팅
    8.8 필터 연결
    8.9 버클리 DB에 색인 저장
    8.9.1 DbDirectory 코딩
    8.9.2 DbDirectory 설치
    8.10 샌드박스 코드 빌드
    8.10.1 소스 체크아웃
    8.10.2 샌드박스와 앤트
    8.11 요약

    9장 언어별 루씬
    9.1 루씬과의 관계
    9.2 C루씬
    9.2.1 지원 플랫폼
    9.2.2 API 호환성
    9.2.3 유니코드 지원
    9.2.4 성능
    9.2.5 사용자층
    9.3 닷루씬
    9.3.1 API 호환성
    9.3.2 색인 호환성
    9.3.3 성능
    9.3.4 사용자층
    9.4 플루씬
    9.4.1 API 호환성
    9.4.2 색인 호환성
    9.4.3 성능
    9.4.4 사용자층
    9.5 루피
    9.5.1 API 호환성
    9.5.2 색인 호환성
    9.5.3 성능
    9.5.4 사용자층
    9.6 파이루씬
    9.6.1 API 호환성
    9.6.2 색인 호환성
    9.6.3 성능
    9.6.4 사용자층
    9.7 요약

    10장 사례 연구
    10.1 너치
    10.1.1 더 자세히 보자
    10.1.2 너치의 다른 기능
    10.2 jGuru의 루씬
    10.2.1 주제어와 문서 분류
    10.2.2 색인 구조
    10.2.3 색인 필드
    10.2.4 색인할 내용 준비
    10.2.5 질의
    10.2.6 JGuruMultiSearcher
    10.2.7 기타
    10.3 루씬과 서치블록스
    10.3.1 왜 루씬인가?
    10.3.2 서치블록스의 구조
    10.3.3 검색 결과
    10.3.4 다국어 지원
    10.3.5 리포팅 엔진
    10.3.6 요약
    10.4 엑스트라마인드의 XM-InformationMinder
    10.4.1 시스템 구조
    10.4.2 루씬을 통해 얻은 것
    10.5 앨리어스-i : 루씬으로 다루는 철자변이
    10.5.1 앨리어스-i 애플리케이션의 아키텍처
    10.5.2 철자변이
    10.5.3 노이지 채널 모델을 이용한 철자교정
    10.5.4 철자변이의 벡터 비교 모델
    10.5.5 하위단어 루씬 분석기
    10.5.6 정확도, 효율성, 그 밖의 애플리케이션
    10.5.7 문맥 혼합
    10.5.8 참고문헌
    10.6 검색 예술 마이클스닷컴
    10.6.1 본문 색인
    10.6.2 컨텐츠 찾기
    10.6.3 검색 통계
    10.6.4 요약
    10.7 루씬이 최고! 더서버사이드
    10.7.1 검색 능력 키우기
    10.7.2 고수준 구조
    10.7.3 색인 구축
    10.7.4 검색
    10.7.5 설정: 모든 것을 관리하는 중심점
    10.7.6 웹
    10.7.7 요약
    10.8 마치면서

    부록 A 루씬 설치
    A.1 바이너리 설치
    A.2 명령행 데모 실행
    A.3 웹 애플리케이션 데모 실행
    A.4 소스 빌드
    A.5 문제 해결

    부록 B 루씬 색인 포맷
    B.1 논리적 관점의 색인
    B.2 색인 구조
    B.3 색인파일 구조 선택
    B.4 역파일 색인
    B.5 요약

    부록 C 참고 문헌
    C.1 국제화
    C.2 언어 감지
    C.3 텀 벡터
    C.4 루씬 포팅
    C.5 사례 연구
    C.6 문서 파서
    C.7 기타 자료
    C.8 IR 소프트웨어
    C.9 더그 커팅의 논문

    한국어판 특별 부록 D 루씬과 한글
    D.1 기본 루씬의 한계
    D.2 루씬 한글 분석기
    D.3 한글 처리와 관련한 그 밖의 문제점
    D.3.1 복합명사
    D.3.2 한 글자 단어
    D.3.3 어미 받침

    저자소개
    Erik Hatcher
    이 미 여러 분야에서 다양한 프로그래밍 언어를 사용해 소프트웨어를 만들었으며, 스티브 로런(Steve Loughran)과 함께 업계에서 알아주는 책 중 하나인 Java Development with Ant(Manning, 2002)을 쓰기도 했다. 첫 책인 Java Development with Ant를 출판한 이후 No Fluff, Just Stuff 심포지엄이나 JavaOne 컨퍼런스, O'Reilly의 오픈 소스 컨벤션(Open Source Convention), 오픈 소스 컨텐트 관리 컨퍼런스(Open Source Content Management Conference), 각종 자바 사용자 그룹 모임등에서 강연을 해왔다. 현재 아파치 소프트웨어 재단의 회원으로 활동중이며 루씬, 앤트, 태피스트리 등의 프로젝트에서 왕성하게 활동 중이다.

    Otis Gospodnetic
    오 티스 고스포드네티치(Otis Gospodnetic)는 4년 넘도록 루씬 프로젝트에 참여했으며, jGuru의 루씬 FAQ8를 운영하고 있다. 현재 학생과 선생님을 위한 솔루션을 개발하는 와이어리스 제너레이션(Wireless Generation)이라는 회사에서 소프트웨어 엔지니어로 일하고 있다. 틈틈이 작업한 심피(Simpy, http://www.simpy.com)라는 북마크 관리 사이트9도 운영하고 있고, O'Reilly 네트워크10와 IBM의 디벨로퍼웍스(developerWorks)에 다양한 글을 기고하고 있다.



    [역자 소개]

    강철구
    아 주대학교 컴퓨터공학과 대학원에서 컴퓨터 비젼(영상 인식)을 전공했고, 교육부 종합생활기록부 프로젝트뿐 아니라, B2B 엔진, 정부 문서유통 소프트웨어, 검색엔진, 홈네트워킹 서비스 등의 개발을 비롯한 다양한 프로젝트에 참여했다. 현재는 루씬을 이용한 검색 솔루션을 개발하고 있으며, 인공지능과 영상 및 정보 검색 등의 다양한 관심사와 관련한 새로운 비즈니스를 준비하고 있다.

    주성진
    아 주대학교 화학공학과를 졸업했고, 5년간 한국정보공학(주)에서 검색엔진 레이다와 제품군을 개발했다. 지금은 유해정보차단 서비스를 하고 있는 플랜티넷㈜에서 차세대 유해차단서비스를 개발 중이다. 영화와 책을 삶의 일부분으로 삼아 지내면서 근래에는 경영/마케팅 서적에 푹 빠져서 생활 중이다. 장래에는 기획형 엔지니어로 성장하는 게 목표이다.

    이문호
    국 립 경상대학교 컴퓨터과학과 및 동 대학원 전자계산학과(영상처리 전공)를 졸업했으며, 내용기반 영상 검색엔진(CBIR), 정보검색엔진과 그룹웨어, 포탈 관련 개발 경험을 쌓았다. 1997년부터 영상처리 홈페이지(http://www.conv2.com)를 운영하면서 영상처리 관련 자료를 제공하며 독자들이 올리는 문의에 답변하는 재미로 지내고 있다. Gonzalez 교수의 저서와 맞먹는 영상처리 고급서를 언젠가 내고 말 거라는 소박한 꿈을 갖고 있으며, 대표 저서로는 ≪Java를 이용한 디지털 영상처리≫ 등이 있다.



    [역자 서문]

    1999 년 기업용 정보검색엔진을 접했을 때의 첫 느낌은 “참 신기하다”는 것이었습니다. 그때 웹 검색엔진으로는 야후, 엠파스, 한미르, 네이버 등이 있었으며, 검색엔진 시장은 아직 열려 있지도 않았을 때였습니다. 그만큼 정보검색엔진이란 용어는 낯설면서도 신선한 느낌으로 다가왔습니다. 많은 시간이 흘러 구글은 검색엔진의 강자로 올라섰고, 여러 업체에서 검색엔진을 이용해 많은 수익을 창출하고 있습니다. 학교 다닐 때 도서관에서 도서를 검색했던 수준을 넘어 개인화를 반영한 검색엔진으로 성장을 거듭하고 있지만, 아직 우리나라에서 한글의 특성을 반영한 검색엔진을 개발하는 일이 쉽지만은 않습니다. 그런 면에서 정보 검색엔진과 솔루션을 개발하는 과정에서 필요한 실무서가 절실한 상태였습니다. 때마침 더그 커팅이 개발한, 강력하고 유연한 자바 오픈소스 검색엔진 루씬을 다룬 실무서인 ≪Lucene in Action≫을 접했습니다. 이 책을 번역하면서 많은 시행착오를 거치기도 했지만, 정보검색엔진 분야에 있는 역자로서 큰 즐거움을 만끽했습니다. 이제 독자 여러분에게 그 즐거움을 돌려 드리고자 합니다. 자바 프로그래머라면 아파치 자카르타 프로젝트를 한번쯤 들어봤을 것입니다. 루씬은 아파치 자카르타 프로젝트에 속해 있다가 최근 아파치의 최상위 프로젝트로 승격됐습니다. 막강한 기능에도 불구하고 국내에는 아직 널리 알려져 있지 않았습니다. 루씬을 프로젝트에 적용하려는 분들께 ≪루씬 인 액션 - 오픈소스 자바 검색엔진≫을 권해드립니다. 이 책, ≪루씬 인 액션 - 오픈소스 자바 검색엔진≫은 루씬 최신 버전을 기준으로 색인, 검색, 분석기, 실제 사례 등을 자세하게 소개한 실무서입니다. 아울러 이 책을 읽다 보면 우리가 알 수 없었던 정보검색엔진의 숨겨진 기능이 어떤 것인가를 알게 될 것입니다. 그리고 루씬이 원래 영어권에 적합하게 구성돼있고 동양권 언어에 대한 지원이 미약한 점을 고려해, 한글처리와 관련한 자료를 한국어판 특별 부록으로 실어 국내에서도 루씬을 폭넓게 사용할 수 있는 기반이 될 수 있게 배려했습니다. 여러분이 자신만의 검색엔진을 만드는데 이 책이 훌륭한 길라잡이가 되어 줄 것이라 믿어 마지않습니다. 다만 다른 분야도 마찬가지이지만, 루씬의 기능을 이해하고 코드로 옮겨서 결과를 직접 확인하는 것에 그치지 말고 정보검색엔진과 관련한 지식을 꾸준히 습득하면서 스스로 좋은 작품을 만들 수 있도록 노력해야 좋은 결과물을 얻을 수 있음을 당부드리고 싶습니다. 루씬과 함께 즐거운 여행이 되시길 바랍니다.