2010-11-10 34 views
0

我在Lucene搜索中使用Semantic MediaWiki,並尋找一種方法來使用搜索輸入項嵌入SQL或語義搜索查詢以生成一個小結果表。在MediaWiki搜索結果中嵌入語義查詢

例如:如果我正在搜索Bob的電話號碼,並且我的語義數據的結構爲文章[[Bob]]中的[[bob's number :: 555-555-5555]],我想要搜索「鮑勃號」返回,不僅正常的Lucene的結果,但一個小桌子與語義查詢的結果,即內嵌查詢像

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

其中「鮑勃」和「數」從搜索項填寫,並假設要查詢的文章(即[[Bob]])遵循已知的格式。

要生成一個簡單的表格:

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

我也可以用SQL查詢,而不是語義搜索聯查詢如有必要做到這一點,我只是不知道從哪裏就開始爲修改搜索結果頁面或訪問搜索條件來構建該查詢。任何有關從何處開始的幫助(或者當然,如果有某種已經這樣做的擴展)將不勝感激。

回答

1

您是否將此擴展用於您的Lucene搜索?

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

我沒有從獅身人面像,而不是Lucene搜索結果的頂部類似的東西。只要您可以獲取一組頁面名稱,該方法應該保持不變。

如果要評估#ask查詢的結果,您將必須找到生成文本片段的位置,並將其替換爲對MediaWiki解析器的調用。

實際上,我發現調用結果集中每個匹配的解析器會顯着降低搜索性能(每個結果頁最多15秒)。

爲您的代碼段使用預定義的Semantic MediaWiki屬性(如果您使用語義形式時很容易)並檢索該屬性的值而不是調用解析器,效率會更高。

+0

謝謝你的回覆。是的,我正在使用MWSearch。我根本就沒有使用解析器,我曾想過另一種方式可能會更有效率。可以詳細闡述如何將搜索項傳遞到另一個查詢中以檢索值,即使對於預定義的SMW屬性?我甚至不知道從哪裏開始 - 我應該看看MWSearch php文件嗎? – Metrodorus 2010-11-11 07:12:17