Повнотекстова індексація командного рядка?


37

Чи існує таке поняття, як повнотекстовий індексування, яке можна запитувати з командного рядка, і в ідеалі взагалі не вимагатиме використання gui?

Мені особливо цікаво індексувати мої електронні книги та документи, тому це суміш pdf, epub та кількох djvu. (Відкрити) Документи Office було б непогано, але набагато нижче в моєму списку.


1
Ви можете бути більш конкретними щодо того, який формат приймає індекс?
ixtmixilix

Добрий момент, відредаговано.
липень

-1 Як зазначалося нижче, Lucene або Tracker - це хороший вибір, але яка у вас проблема з "використанням gtk, або ще гірше qt"? Використовувати лише командний рядок - це добре, але я не бачу сенсу критикувати набір бібліотек ...
tmow

2
@tmow: точка взята, питання відредаговано. Не мав на увазі підривати чиюсь важку роботу, вибачте, якщо так воно
пройшло

Відповіді:


11

Ви дивилися на Люцена чи Сфінкса? Хоча вам потрібно буде спочатку проаналізувати документи, які ви хочете проіндексувати, після цього це може зробити пошук із кліпу.

Для Lucene, є деяка інформація робити це доступно .

Sphinx, є трохи більш розпливчастим, але є і деякі документи доступні . Ви можете передавати структуровані XML-дані за вашим вибором сфінксу через джерело даних xmlpipe2.

Lucene покладається на Java, тоді як Sphinx побудований на C ++ без необхідності зовнішніх залежностей.

Або потрібно буде трохи попрацювати, щоб зробити те, що ви хочете, але, схоже, цілком справне рішення.


1
Крім того, якщо ви хочете індексувати дані, що знаходяться в БД (postrgres, mysql), то будь-яке з них також працює надзвичайно добре.
габе.

Хм, я звільнив сфінкса за занадто низький рівень, але дивлячись на xmlpipe2, здається, скрипт для обгортки для pdf2txt тощо - це буде досить просто ...
липень

+1 для згадки у люцені. У мене були гарні часи з Люценом, це вбивчі речі !!
Нікхіл Маллі

Я вважаю, що еластичний пошук базується на люцені і може бути зручнішим у використанні (будучи річчю вищого рівня).
offby1

5

перевірити xapian . Він має інтерфейс командного рядка і може індексувати безліч форматів.


xapian - це чудовий індекс, мій особистий улюблений, і він написаний на рідному C ++ !. Щось із використанням xapian було б найбільш ідеальним, для багатьох проектів, які потребують індексації +1.
Дж. М. Бекер

4

Відновлення може бути побудовано без графічного інтерфейсу і буде шукати типи документів у командному рядку.

Він використовує Xapian під кришкою.


3

Трекер можна викликати з командного рядка, а gtk + не є важкою залежністю для проекту (але може бути для пакетів).


Ну якщо я не помиляюся, він все одно намагатиметься витягнути (великі частини) гнома як залежність.
липень

1
Як я вже сказав - проект (у версії 0.9.x принаймні єдиною жорсткою залежністю GNOME є glib). Пакети можуть складати персонал за замовчуванням, такий як GUI, тому вам може знадобитися скласти його вручну.
Maciej Piechotka

3

Ця відповідь рекомендує скористатися пошуковим кодом Google ,

Пошук коду - це інструмент для індексації, а потім для здійснення регулярних пошукових виразів на великих телах вихідного коду.

Суперусери на Debian / похідних можуть спробувати: sudo apt-get install codesearch


1
ця відповідь містить деякі деталі щодо встановлення з джерела; на випадок, якщо він не доступний для
репостів

2

В даний час є два потоки Tracker, стабільний (0,8) і нестабільний (0,9). Ваша ОС, швидше за все, має версію 0.8, тому, якщо ви можете собі це дозволити (вона має деякі програмні залежності від кровотоку ), перейдіть до останнього tarfile (0.9.x). Він має багато покращень понад 0,8, і в даний час стабілізується далі, щоб бути 0,10 (парні числа представляють стабільність). Якщо ви вирішите пройти цей маршрут, скористайтеся цією командою для налаштування:

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

Ви, ймовірно, не будете встановлювати залежності, тож слід просто встановити 0,8 з вашого дистрибутива і просто уникати бітів GUI. На Debian Squeeze, Ubuntu 10.10 та Ubuntu 11.04 вони добре розділені. Отже ( як root ) запустіть:

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-toolінтерфейсу пошуку GUI.
  • DjVu та ePUB ще не підтримуються. Ось перелік того, що є .

0

Я працював над написанням повнотекстового інструменту пошуку тексту (новий підхід) для індексації та пошуку довідкових сторінок для NetBSD цього літа за допомогою Sqlite3. Він складається з двох інструментів командного рядка:

  • makemandb: який аналізує і будує індекс змісту мандатних сторінок.
  • apropos: інструмент для запиту цього індексу.

Ви можете легко написати подібний інструмент для себе, для файлів pdf вам знадобиться бібліотека для розбору PDF-документів і аналогічна утиліта для розбору відкритих офісних документів.

Більше про проект ви можете прочитати тут

Код тут

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.