2010-01-14 160 views
7

我正在考慮/致力於爲我們公司的各種內容類型實施搜索引擎,並試圖圍繞Lucene(特別是.net風格)打包我的頭。Lucene中的文檔是否必須包含相同的字段?

目前,我的主要問題是文檔索引是否必須包含相同的字段。

例如:

文檔1:

  • 標題: 「我的文檔,寶貝」
  • 身體: 「這裏有一些重要的事情」
  • 緯度:26.12224
  • 經濟型:-65.23124
  • 品牌:東芝

文檔2:

  • 標題: 「另一個文件由我」
  • 身體: 「Lorem存有和所有的爵士樂」
  • 範疇:
  • 作者:腰部爵士

...等等

回答

14

lucene沒有力量的一致性。

如果您在名爲'fred'的字段進行搜索,並非所有文檔都有'fred',那麼搜索將找不到fredless文檔。

+3

你是我的新英雄。 – Matt 2010-01-14 19:55:36

0

如果你想在一個特定領域的索引,我g所有文件必須具有相同的字段。

+0

這就是我的直覺所告訴過的,但我一直沒能找到任何具體說明這種或那種方式的東西。 – Matt 2010-01-14 19:44:54

0

這一切都取決於你如何索引你的文檔在Lucene中。所有Document必須添加到索引。您可以使用IndexWriter或編寫自己的課程來做到這一點。在向索引添加文檔之前,您應該將其分解爲名稱值對。隨後,您可以使用QueryParser來查詢Lucene的這些名稱值。例如,以下查詢將返回標題中包含短語「我是文檔,寶貝」的所有文檔以及正文中的「這是一些重要的事情」。

title:("I'm a document, baby") body:("Here are some important things") 

我剛剛展示了一個簡單的例子,但您可以用許多不同的方式創建更強大的搜索查詢。

我剛纔提到的類都是來自java,但.net應該是類似的。

相關問題