【问题标题】:Embedding Semantic Queries in MediaWiki Search Results在 MediaWiki 搜索结果中嵌入语义查询
【发布时间】:2010-11-10 17:17:33
【问题描述】:

我正在使用 Semantic MediaWiki 和 Lucene 搜索,并寻找一种方法来嵌入 SQL 或 Semantic Search 查询,使用搜索输入词生成一个小的结果表。

例如:如果我正在搜索 Bob 的电话号码,并且我的语义数据在文章 [[Bob]] 中的结构为 [[bob's number::555-555-5555]],我想搜索 ' bob number' 不仅返回正常的 lucene 结果,还返回一个带有语义查询结果的小表,即类似的内联查询

{{#ask: [[Bob]]
 | ?Number
 | format=table
}}

“Bob”和“Number”从搜索词中填写,并假设要查询的文章(即 [[Bob]])遵循已知格式。

生成一个简单的表格:

| Name | Number       |
| Bob  | 555-555-5555 |

如有必要,我也可以使用 sql 查询而不是语义搜索内联查询来执行此操作,我只是不知道从哪里开始修改搜索结果页面或访问搜索词以构建该查询。任何关于从哪里开始的帮助(或者当然,如果有某种已经这样做的扩展)将不胜感激。

【问题讨论】:

    标签: lucene mediawiki semantics


    【解决方案1】:

    您是否使用此扩展程序进行 Lucene 搜索?

    http://www.mediawiki.org/wiki/Extension:MWSearch

    我在 Sphinx 而不是 Lucene 的搜索结果之上做了类似的事情。只要你能得到一个页面名称数组,方法应该保持不变。

    如果您想评估 #ask 查询的结果,您必须找到文本 sn-ps 的生成位置,并将其替换为对 MediaWiki 解析器的调用。

    在实践中,我发现为结果集中的每个匹配项调用解析器会显着降低搜索性能(每个结果页面最多 15 秒)。

    为您的 sn-ps 使用预定义的 Semantic MediaWiki 属性(如果您使用语义形式很容易做到)并检索该属性的值而不是调用解析器会更有效。

    【讨论】:

    • 感谢您的回复。是的,我正在使用 MWSearch。我根本不喜欢使用解析器,而且我认为另一种方法可能会更有效。您能否详细说明您如何将搜索词传递到另一个查询中以检索值,即使对于一个预定义的 SMW 属性?我什至不确定从哪里开始——我应该查看 MWSearch php 文件吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-25
    • 1970-01-01
    • 1970-01-01
    • 2011-03-22
    • 1970-01-01
    • 2014-05-26
    • 2020-01-22
    相关资源
    最近更新 更多