題:
什麼是好的開源信息檢索庫(搜索引擎)?
DFL
2014-06-25 00:56:27 UTC
view on stackexchange narkive permalink

因此,我在Websphere服務器上運行了一個Java應用程序。服務器有一個盒子的oracle數據庫。每個盒子中都有一個物品清單。每個事物都有一個主要描述(作為人類文字輸入),以及描述事物的標籤/值對(例如,顏色:黑色,數量:3等)的列表。

我想允許用戶搜索該數據庫,因此我需要一個庫來搜索數據庫並對結果進行排名。將允許用戶輸入上述相同類型的信息。我希望能夠列出與用戶輸入內容最接近的框。

我已經研究了一些搜索庫,例如Lucene和Xapian,但是我不確定各種庫的確切功能。我希望能夠看到它們的優缺點,以及它們的工作原理,因此我開始進行一些研究。

但是在此之前,我想听聽您對這個特定項目的建議。

我添加了標籤[tag:search-engine]和[tag:library]。 -不確定[tag:nlp](@FranckDernoncourt)和[tag:data-analysis]是否真的適用於此?
通常在NLP課程中教授@unor信息檢索,例如https://www.coursera.org/course/nlp;但是我不介意是否要刪除nlp標籤。
三 答案:
dimzak
2014-06-25 02:42:40 UTC
view on stackexchange narkive permalink

您還可以嘗試 ElasticSearch

ElasticSearch是位於 Lucene之上的搜索服務器。它提供了用於執行搜索查詢的Json API,它在可擴展性方面非常方便。

要為現有數據庫建立索引,您應該不斷輪詢其內容。 br /> 這裡是針對該問題的教程。

不利的是,您應該熟悉Lucene超越基礎知識(例如自定義分析器,令牌生成器等),這些東西

最後但並非最不重要的一點是,ElasticSearch提供了AND Java API,它是Json API的包裝。到目前為止,我只與Json合作,但是我對此進行了一些研究,如果您已經有Java應用程序,那麼使用起來真的很簡單。

開放源代碼(Apache 2許可證)

dimzak
2014-06-25 02:19:48 UTC
view on stackexchange narkive permalink

好吧,您說了3個魔術字:數據庫文本搜索 Java
我強烈建議您使用 Hibernate-Search(因為它是為此目的而製作的。)

更準確地說,Hibernate-Search具有以下功能:

  • 添加文本-通過現有實體中的註釋在現有數據庫中進行搜索。
  • 通過近似(模糊搜索)查找並對結果進行排名。
  • 這是 Lucene ,但是非常容易在數據庫中使用,特別是如果您已經使用過 Hibernate。您可以嘗試使用 Lucene,但是存儲索引,手動更新索引並同時記住字段的權重或數據庫結構的更改的開銷,是的,這確實不值得麻煩...
  • 非常容易入門:書籍,出色的文檔,許多在線示例以及我想要創建的快速入門
  • 座右銘Hibernate-Search的搜索結果是:“使用Google記錄您的數據庫”

PS
我已經使用Lucene超過一年了,並且與

開源(LGPL v2.1)

dimzak
2014-06-25 03:00:14 UTC
view on stackexchange narkive permalink

Solr可能很適合您。

ElasticSearch一樣,Solr基於Lucene並提供與相同的功能>全文搜索熱門突出顯示易擴展性

通常,在搜索這兩種解決方案時,您會發現很多資源。我讓您決定使用哪一個;)Solr在成熟度和用戶數量方面絕對具有優勢。

要為現有數據庫建立索引,可以使用 DataImportRequestHandler使用 JdbcDataSources 連接到一個或多個數據庫並導入其內容。

開放源代碼(Apache 2許可)



該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...