2011-11-03 211 views
0

我正在嘗試創建一個小型搜索引擎,它使用Java掃描器類來讀取文件,將用戶查詢與文件中查詢的關鍵字進行匹配。Java掃描器類

然而,我有一個問題,我需要排列這些關鍵字,如果我搜索「計算機」和搜索文件包含4個「計算機實例,他們將全部顯示在一行內,因爲它們是相同的。

但是如果返回「電腦店」,那麼這應該是排名較低,不僅僅是「的電腦,因爲我沒有搜索‘電腦店’

我希望你明白,浩我可以做到這一點?

謝謝

回答

0

據我瞭解,你的問題是在搜索引擎邏輯。在這種情況下,類掃描儀是無關緊要的。從流中讀取數據只是一個方便的工具。

關於搜索引擎,請定義更好的輸入和所需的輸出。一般來說,您應該搜索更好地匹配您的查詢與目標文本。這是什麼意思?這是非常複雜的。可能更長的字符序列,可能更匹配的單詞等等。人們爲此寫了數百名博士並創建了數千家公司(您是否聽說過谷歌?:))。

因此,除非是家庭作業,否則請嘗試使用Solr或Lucine等工具。否則,請考慮我上面提到的策略。

祝你好運。

0

更好的方法可能是創建一個inverted index。而不是從文件轉到文件中的單詞,而是做相反的事情。

Java中的簡單實現可能只需要使用Map<String,List<File>>來完成,其中字符串是單詞,文件列表表示包含該單詞的文件。

0

您可以使用兩個輔助整數變量來構建一個開關盒,這些輔助整數變量可以計算計算機出現次數和非計算機出現次數。

例如: 2爲計算機和4爲非計算機將提供低於3的計算機和10非電腦。 你所要做的就是劃分。