我正在考慮/致力於爲我們公司的各種內容類型實施搜索引擎,並試圖圍繞Lucene(特別是.net風格)打包我的頭。Lucene中的文檔是否必須包含相同的字段?
目前,我的主要問題是文檔索引是否必須包含相同的字段。
例如:
文檔1:
- 標題: 「我的文檔,寶貝」
- 身體: 「這裏有一些重要的事情」
- 緯度:26.12224
- 經濟型:-65.23124
- 品牌:東芝
文檔2:
- 標題: 「另一個文件由我」
- 身體: 「Lorem存有和所有的爵士樂」
- 範疇:
- 作者:腰部爵士
...等等
我正在考慮/致力於爲我們公司的各種內容類型實施搜索引擎,並試圖圍繞Lucene(特別是.net風格)打包我的頭。Lucene中的文檔是否必須包含相同的字段?
目前,我的主要問題是文檔索引是否必須包含相同的字段。
例如:
文檔1:
文檔2:
...等等
lucene沒有力量的一致性。
如果您在名爲'fred'的字段進行搜索,並非所有文檔都有'fred',那麼搜索將找不到fredless文檔。
如果你想在一個特定領域的索引,我g所有文件必須具有相同的字段。
這就是我的直覺所告訴過的,但我一直沒能找到任何具體說明這種或那種方式的東西。 – Matt 2010-01-14 19:44:54
這一切都取決於你如何索引你的文檔在Lucene中。所有Document
必須添加到索引。您可以使用IndexWriter
或編寫自己的課程來做到這一點。在向索引添加文檔之前,您應該將其分解爲名稱值對。隨後,您可以使用QueryParser
來查詢Lucene的這些名稱值。例如,以下查詢將返回標題中包含短語「我是文檔,寶貝」的所有文檔以及正文中的「這是一些重要的事情」。
title:("I'm a document, baby") body:("Here are some important things")
我剛剛展示了一個簡單的例子,但您可以用許多不同的方式創建更強大的搜索查詢。
我剛纔提到的類都是來自java,但.net應該是類似的。
你是我的新英雄。 – Matt 2010-01-14 19:55:36