我们正在为我们的研究面对不同的搜索引擎 档案和浏览了Xapian-Omega文档,我们 决定尝试一下,因为Omega选项似乎是一个 适当的解决方案,有几个有趣的搜索选项。
我们在Linux服务器(Deb 7)上安装了Xapian-Omega并进行了测试 设置成功。但是我们不确定如何做到 使用或甚至可以使用Wild Cards或Regular 表达与Xapian-Omega。
我们读到,对于Xapian,必须启用Wild Card选项 “QueryParser标志” 有人可以澄清一下吗? 即。用一两个例子解释或指出一个页面。
但我们没有看到有关Omega示例的更多信息 CGI,虽然后者运行良好,外卡选项 (例如*用于普通外卡和?作为单个字符), 似乎默认情况下没有按预期工作,他们会 有用的,即使词干和子串等可能是有用的。
例如:能够采用标准的简单方法会很有趣 wild char搜索具有一定的精度,例如: 医药*用于医药药品 还是用?单个字符
Regexp能否被Omega认可? 例如:sep [ae] r [ae] te(\ w +)? 或搜索电子邮件或信用卡等结构化格式 研究论文中的数字或某些公式类型等。
很久以前来自Olly Betts的一份说明(Dev Mailing List) 这个建议是grep索引文件,但这样做 击败欧米茄的RAD优势。
使用带有Wild Cards或Regular的Omega搜索的任何示例 表达式将是最受赞赏的...甚至表明 一个页面,其中提供了有关此主题的信息 以及说明如何开发高级搜索的示例 单独使用Xapian是非常受欢迎的(也许是PHP或Python)。
(我们并不关心最终的那一刻 指数大小或大幅增加 时间归档档案)
答案 0 :(得分:0)
您可以使用$set{flag_wildcard,1}
(Omegascript documentation中所述)启用Omega中的右通配符(例如" medic *"),这将启用FLAG_WILDCARD
。 using wildcards上的用户手册中有一节。
对于sep[ae]r[ae]te(\w+)?
的示例,听起来您确实需要spelling correction的组合(对于ae替换,您可以使用$set{flag_spelling_correction,1}
启用)和stemming (对于' te'之后的尾随字母; Omega默认为英语词干,但是that can be changed),或者是通配符或部分匹配支持。
如果您的确需要使用正则表达式,那么我建议您在xapian-discuss mailing list上提出正则表达式。自上次讨论以来,Xapian一直在继续前进,我相信现在建立这样的支持比现在更容易。
答案 1 :(得分:0)
关于正则表达式的使用,我们已经想到它可能不像人们希望的那么简单。前一篇文章中提到的例子当然是简单的可能用途,当然还有更多。您对使用词干选项的评论似乎是合适的。
在某些情况下,为文本表单的提取启用某种类型的正则表达式选项可能会很有趣,例如提到的那些。这种文本的快速提取,可能与一些周围的文本一起可能非常有用。 我们一定会在邮件列表中尝试您的提案。
再次感谢你。