2016-08-16 54 views
0

我们面对不同的搜索引擎为我们的研究 档案并具有浏览Xapian的欧米茄文档,我们 决定自欧米茄选项似乎是一个 尝试一下适当的解决方案和几个有趣的搜索选搜索 - 使用通配符或正则表达式

我们在Linux服务器上安装了Xapian-Omega(Deb 7)并测试了成功的设置 。然而,我们不确定 如何使用Xapian-Omega,或者甚至可以使用Wild Cards或常规 表达式。

我们读到Xapian必须启用Wild Card选项 “QueryParser flags” 有人可以澄清一下吗? 即。用一个或两个示例解释或指示一个页面。

但我们并没有看到关于与欧米茄 CGI虽然后者运行良好的例子多的信息,外卡选项(如*为广大外卡?为单个字符), 似乎并不 就到按预期工作,默认情况下它们是 有用,即使干扰和子字符串等可能是有用的。

如:这将是有趣的,能够使用标准的简单 野生字符的搜索具有一定的精确度,例如: 医药医疗药物 或军医*?对于单个字符

Regexp可以用欧米茄识别吗? 例如:sep [ae] r [ae] te(\ w +)? (dev邮件列表)关于 这一建议 或搜索结构化的格式,如电子邮件或信用卡 号或研究论文等

在从奥利贝茨记不久前一定的公式类型是到grep指数但这会让 击败欧米茄的RAD优势。

使用欧米茄通配符或正 表达式搜索的任何示例将是非常赞赏...甚至 ,其中有关这个主题的信息很好地举例说明了如何使用来开发先进的搜索 呈现 页面指示Xapian本身是最受欢迎的(也许是PHP或Python)。

(我们不关心有关索引大小的尺寸或 时间指数最终 大幅增加存档的那一刻)

回答

0

您可以启用右键通配符(如“军医*“)在欧米茄使用$set{flag_wildcard,1}(在Omegascript documentation中涵盖),这使得FLAG_WILDCARD。用户手册中有一节using wildcards

Xapian不提供对正则表达式搜索的支持,尽管理论上我认为如果潜在的代价高昂(取决于正则表达式),它可能会支持。它将不得不针对数据库中的未定项术语运行正则表达式,然后将它们提供给搜索。如果正则表达式扩展到很多条件(例如,只是'a'作为正则表达式),那么它变得困难。在提高效率方面也有一些微妙之处;通过术语列表跳转到具有固定前缀的内容很容易,如果可能的话,您希望利用这一点。

为了您的sep[ae]r[ae]te(\w+)?例子,这听起来像你真正想要的spelling correction的组合(自动曝光换人,您可以启用使用$set{flag_spelling_correction,1})和stemming(为后“德”后的字母;欧米茄默认为英语词干,但是that can be changed)或通配符或部分匹配支持。

如果你确实需要用例的正则表达式,那么我会建议把它放在xapian-discuss mailing list上。 Xapian自上次讨论以来一直在继续,我认为现在比以前更容易建立这种支持。

0

James Ayatt:感谢您的回复和帮助,我对此迟来的回复表示歉意,对其他作品感到分心。 我们已经看到了Omegascript页面,但是我们不清楚如何在CGI界面中使用这些选项。另外*的使用似乎是为了追踪字符,这是正确的吗?即不适用于内部词组,例如:omeg * ipt;有些情况下,词干选项不够。我们没有看到单个野生字符的选项,有时以?在某些搜索引擎中。你能在这里评论吗?

关于正则表达式的使用,我们曾经沉that于它可能并不像人们希望的那么简单。上一篇文章中提到的例子当然是简单可行的用法,当然还有更多。您对使用词干选项的评论似乎是适当的。

在某些情况下,启用某种类型的正则表达式选项可用于提取文本表单(如上述那些),这可能很有趣。对这些文本的快速引用,可能与一些周边文本一起可能非常有用。 我们一定会尝试你的邮件列表。

再次感谢您。