명령 줄 친화적 인 전체 텍스트 인덱싱?


37

전체 텍스트 인덱싱 엔진과 같은 것이 명령 줄에서 쿼리 할 수 ​​있으며 GUI를 전혀 사용하지 않아도됩니다.

특히 전자 책과 논문의 색인을 생성하는 데 관심이 있으므로 pdf, epub 및 몇 가지 djvu가 혼합되어 있습니다. Office 문서는 훌륭하지만 내 목록에서 훨씬 낮습니다.


1
인덱스의 형식에 대해 더 구체적으로 설명 할 수 있습니까?
ixtmixilix

좋은 지적, 편집했습니다.
Julien

-1 아래에서 지적한 것처럼 Lucene 또는 Tracker는 좋은 선택이지만 "gtk 사용 또는 더 나쁜 qt"와 관련된 문제는 무엇입니까? 명령 줄 만 사용하는 것은 좋지만 라이브러리 세트를 비판하는 요점은 보이지 않습니다.
tmow

2
@tmow : 점을 찍고 질문을 편집했습니다. 누군가의 노력을 훼손한다는 의미는 아니 었습니다. 그렇게된다면 미안합니다.
julien

답변:


11

Lucene 또는 Sphinx를 보셨습니까? 색인을 생성 할 문서를 처음에 파싱해야하지만 일단 완료되면 cli에서 검색 할 수 있습니다.

Lucene의 경우이 작업을 수행하는 방법에 대한 정보가 있습니다 .

스핑크스는 조금 더 모호하지만 일부 문서도 있습니다 . xmlpipe2 데이터 소스를 통해 선택한 구조화 된 XML 데이터를 스핑크스에 전달할 수 있습니다.

Lucene은 Java에 의존하는 반면 Sphinx는 외부 종속성없이 C ++로 빌드됩니다.

어느 쪽이든 원하는 것을하기 위해 약간의 작업이 필요하지만 완전히 실행 가능한 솔루션처럼 보입니다.


1
게다가, DB (postrgres, mysql)에있는 데이터를 인덱싱하려면이 중 하나도 엄청나게 잘 작동합니다.
개브.

흠, 나는 너무 낮은 수준으로 스핑크스를 기각했지만 xmlpipe2를 보면 pdf2txt 등에 대한 래퍼 스크립트가 매우 쉬울 것 같습니다 ...
julien

Lucene에서 언급 한 +1 나는 Lucene와 즐거운 시간을 보냈습니다, 그것은 살인자입니다 !!
Nikhil Mulley

elasticsearch 는 lucene을 기반으로하며 사용하기가 더 편리 할 수 있다고 생각 합니다 (상위 수준의 것).
offby1

5

xapian을 확인하십시오 . 명령 행 인터페이스가 있으며 많은 형식을 색인화 할 수 있습니다.


xapian은 개인적으로 가장 좋아하는 훌륭한 인덱스이며 네이티브 C ++로 작성되었습니다!. 인덱싱 +1이 필요한 많은 프로젝트에서 xapian을 사용하는 것이 가장 이상적입니다.
JM Becker


3

트래커는 명령 행에서 호출 할 수 있으며 gtk +는 프로젝트에 대한 어려운 의존성이 아닙니다 (패키지에 대한 것일 수도 있습니다).


글쎄, 내가 실수하지 않으면, 여전히 그놈을 종속물로 끌어들이려고 노력할 것입니다.
Julien

1
내가 말했듯이-프로젝트 (버전 0.9.x에서 적어도 그놈 하드 종속성은 glib입니다). 패키지는 GUI와 같은 기본 직원을 컴파일 할 수 있으므로 직접 컴파일해야합니다.
Maciej Piechotka

3

이 답변 은 Google의 codesearch를 사용하는 것이 좋습니다 .

코드 검색은 대량의 소스 코드에서 색인을 생성 한 다음 정규식 검색을 수행하는 도구입니다.

데비안 / 파생 프로그램의 수퍼 유저는 다음을 시도 할 수 있습니다. sudo apt-get install codesearch


1
이 답변에는 소스에서 설치하는 데 대한 자세한 내용이 있습니다. 경우에 그것은 당신의 OS 용의 repos에 사용할 수없는 : superuser.com/a/1263343/65975
ccpizza의

2

현재 트래커 스트림에는 안정 (0.8)과 불안정 (0.9)의 두 가지 스트림이 있습니다. 귀하의 OS 가능성이 당신이 (그것이 일부가 그것을 감당할 수 있다면, 그래서 0.8 버전이 출혈 에지 소프트웨어 종속성을), 최신 tar 파일 (0.9.x)을 잡아 이동합니다. 이는 보유 개선 많이 0.8 이상, 그리고 현재 안정화되고 (짝수 안정성을 나타낸다) 0.10되기 위해 상기. 이 경로를 선택하면 다음 명령을 사용하여 구성하십시오.

./configure --disable-tracker-needle --disable-tracker-preferences --disable-tracker-explorer --disable-tracker-status-icon

의존성을 설치하지 않을 가능성이 높으므로 배포판에서 0.8을 설치하고 GUI 비트를 피하는 것이 더 현명해야합니다. 데비안 스퀴즈, 우분투 10.10 및 우분투 11.04에서는 이것들이 잘 나뉘어져 있습니다. 따라서 ( 루트로 ) 다음을 실행하십시오.

apt-get install --no-install-recommends tracker-utils tracker-miner-fs

이에 대한 CLI 도구는 tracker-search이므로이를 --help활용하는 방법을 보려면 옵션으로 실행 하십시오.

참고 사항 :

  • Fedora 14에서 Tracker 패키지는 GTK +에 의존합니다. 나는이 일을 좋아하는이 포함되어 있기 때문에 추측 tracker-applet하고 tracker-preferences. 그러나 tracker-search-toolGUI 검색 인터페이스를 위한 별도의 패키지가 있습니다.
  • DjVu 및 ePUB는 (아직) 지원되지 않습니다. 의 목록은 다음과 같습니다 .

0

나는 올 여름 Sqlite3를 사용하여 NetBSD에 대한 매뉴얼 페이지를 색인화하고 검색하기위한 전체 텍스트 검색 도구 (새로운 apropos)를 작성하는 작업을했다. 다음 두 가지 명령 줄 도구로 구성됩니다.

  • makemandb : 매뉴얼 페이지의 내용을 분석하고 색인을 작성합니다.
  • apropos :이 인덱스를 쿼리하기위한 도구.

비슷한 도구를 쉽게 작성할 수 있습니다. pdf의 경우 pdf 문서를 구문 분석하는 라이브러리와 오픈 오피스 문서를 구문 분석하는 유틸리티가 필요합니다.

프로젝트에 대한 자세한 내용은 여기를 참조하십시오

코드는 여기

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.