命令行友好的全文索引?


37

是否有全文索引引擎之类的东西,可以从命令行查询,并且理想情况下根本不需要使用gui?

我对索引我的电子书和论文特别感兴趣,因此它是pdf,epub和一些djvu的混合物。(开放式)Office文档会很好,但是在我的清单上要低得多。


1
您能更详细地了解索引采用什么格式吗?
ixtmixilix

好点,编辑。
julien

-1正如下面指出的那样,Lucene或Tracker是不错的选择,但是“使用gtk甚至更糟糕的qt”有什么问题?只使用命令行就可以了,但是我看不到批评一组库的意义……
tmow 2011年

2
@tmow:点,问题已编辑。并不是要破坏任何人的辛勤工作,对不起,这是怎么回事……
julien 2011年

Answers:


11

您是否看过Lucene或Sphinx?尽管您将需要首先解析要索引的文档,但是一旦完成,任何人都可以从cli中搜索。

对于Lucene,有一些有关执行此操作的信息

Sphinx有点模糊,但是也有一些文档可用。您可以通过xmlpipe2数据源将您选择的结构化XML数据传递给sphinx。

Lucene依赖Java,而Sphinx是用C ++构建的,不需要外部依赖。

任何一种都将需要一些工作才能完成您想要的,但是,这似乎是一个完全可行的解决方案。


1
顺便说一句,如果您想索引数据库中的数据(postrgres,mysql),那么这两种方法都可以很好地工作。
gabe。

嗯,我已经被解雇狮身人面像为过于低的水平,但看着xmlpipe2数据似乎一个包装脚本PDF2TXT或类似物将是非常容易...
朱利安

+1在Lucene中提及。我和Lucene度过了愉快的时光,这是一个杀手级的东西!!
Nikhil Mulley 2012年

我相信elasticsearch是基于lucene的,可能会更方便使用(是高级的东西)。
offby17年

5

查看xapian。它具有命令行界面,可以索引许多格式。


xapian是一个很棒的索引,我个人最喜欢,它是用本机C ++编写的!对于许多需要索引+1的项目,使用xapian的东西是最理想的。
JM Becker


3

可以从命令行调用Tracker,并且gtk +不是项目的硬依赖项(但可能是软件包的依赖项)。


好吧,如果我没有记错的话,它仍然会尝试将gnome(大部分)作为依赖项。
julien 2010年

1
正如我所说的-项目(在0.9.x版中,至少GNOME唯一的硬依赖是glib)。程序包可能会编译默认的人员,例如GUI,因此您可能需要手动进行编译。
Maciej Piechotka 2010年

3

此答案建议使用Google的代码搜索

代码搜索是一种用于对大型源代码建立索引然后执行正则表达式搜索的工具。

Debian /衍生产品上的超级用户可以尝试: sudo apt-get install codesearch


1
该答案提供了有关从源代码安装的一些详细信息;如果您的操作系统无法在回购中使用它,请访问:superuser.com/a/1263343/65975
ccpizza

2

当前有两种跟踪器,稳定(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-toolGUI搜索界面提供了单独的软件包。
  • 目前尚不支持DjVu和ePUB。这是什么的清单

0

我今年夏天使用Sqlite3编写了全文搜索工具(一种新的apropos),用于为NetBSD索引和搜索手册页。它包含两个命令行工具:

  • makemandb:解析并建立手册页内容的索引。
  • apropos:用于查询此索引的工具。

您可以轻松地为自己编写一个类似的工具,对于pdf,您将需要一个库来解析pdf文档,并且类似地需要一个实用程序来解析打开的Office文档。

您可以在此处了解有关该项目的更多信息

代码在这里

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.