2016-08-16 53 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於它可能並不像人們希望的那麼簡單。上一篇文章中提到的例子當然是簡單可行的用法,當然還有更多。您對使用詞幹選項的評論似乎是適當的。

在某些情況下,啓用某種類型的正則表達式選項可用於提取文本表單(如上述那些),這可能很有趣。對這些文本的快速引用,可能與一些周邊文本一起可能非常有用。 我們一定會嘗試你的郵件列表。

再次感謝您。