官术网_书友最值得收藏!

1.2 開發環境

由于開源軟件的迅速發展,可以借助開源軟件簡化搜索引擎開發工作。很多開源軟件用Java語言編寫,例如最流行的全文索引庫Lucene,所以本書采用Java來實現搜索。

為了實現一個簡單的指定目錄文件的搜索引擎,首先要準備好JDK和集成開發環境Eclipse。當前可以使用JDK 1.6。JDK 1.6可以從Java官方網站http://java.sun.com下載得到,使用缺省方式安裝即可。本書中的程序在附贈的資源中都能找到,可以直接導入Eclipse中。Eclipse默認是英文界面,如果習慣用中文界面可以從http://www.eclipse.org/babel/downloads.php下載支持中文的語言包。

Lucene是一個Java實現的jar包,用來管理搜索引擎索引庫。可以從http://lucene.apache.org/java/docs/index.html下載到最新版本的Lucene,當前最新的版本是3.0。

如果需要用Web搜索界面,還要下載Tomcat,可以從http://tomcat.apache.org/下載,推薦使用Tomcat 6以上的版本。使用開源的全文檢索包Lucene作索引后,要把實現搜索的界面發布到Tomcat。

對于Web搜索界面,建議使用MyEclipse開發。對于其他普通的非Web開發工作則不建議使用MyEclipse。例如,開發爬蟲建議只使用Eclipse,而不要用MyEclipse。MyEclipse開發普通的Java項目時,速度慢。

Lucene及一些相關項目的源代碼由版本管理工具SVN管理,如果要構建源代碼工程,可以使用Ant和Maven工具。

如果需要導出Lucene的最新開發版本,就需要用到SVN的客戶端。“小烏龜”TortoiseSVN是最流行的SVN客戶端。TortoiseSVN的下載地址是http://tortoisesvn.tigris.org/。安裝TortoiseSVN后,選擇一個存放源代碼的文件夾,單擊右鍵,選擇TortoiseSVN菜單中的Export...選項導出源代碼。

Ant與Maven都是項目管理軟件Make類似。雖然Maven正在逐步替代Ant,但當前仍然有很多開源項目在繼續使用Ant。從http://ant.apache.org/bindownload.cgi可以下載Ant的最新版本。

在Windows下,ant.bat和3個環境變量相關:ANT_HOME、CLASSPATH和JAVA_HOME。需要設置ANT_HOME和JAVA_HOME環境變量,并且路徑不要以\或/結束,不要設置CLASSPATH環境變量。可以使用echo命令檢查ANT_HOME環境變量:

        >echo %ANT_HOME%
        D:\apache-ant-1.7.1

如果把Ant解壓到c:\apache-ant-1.7.1,則需修改環境變量PATH,增加當前路徑c:\apache-ant-1.7.1\bin。

如果項目的源代碼根目錄包括一個build.xml文件,則說明這個項目可能是用Ant構建的。大部分用Ant構建的項目只需要如下一個命令:

        #ant

生成jor包。

可以從http://maven.apache.org/download.html下載最新版本的Maven,當前最新版本是Maven 2.2.1。解壓下載的Maven壓縮文件到C盤根目錄下,將創建一個c:\apache-maven-2.2.1路徑。修改Windows系統環境變量PATH,增加當前路徑c:\apache-maven-2.2.1\bin。如果一個項目的源代碼根目錄包括一個pom.xml文件,則說明這個項目可能是用Maven構建的。大部分用Maven構建的項目只需要如下一個命令:

        #mvn clean install

蓋大樓的時候需要搭建腳手架,雖然最終不會交付使用。很多單元測試代碼也不會在正式環境中運行,但是必須寫。可以使用JUnit做單元測試。

如果參與開發的人很多,就需要一個項目管理軟件,例如Redmine或者JIRA。Lucene和Solr的開發管理就是用的JIRA。

搜索集群往往運行在Linux操作系統,需要熟悉一些Linux命令,例如使用crash命令分析Linux內核崩潰轉儲文件。

主站蜘蛛池模板: 金溪县| 张家港市| 汉源县| 扬州市| 泰顺县| 汤阴县| 鱼台县| 大竹县| 都安| 黑河市| 金阳县| 白银市| 鲜城| 菏泽市| 定西市| 东城区| 龙井市| 正定县| 嘉兴市| 微博| 松原市| 上虞市| 高尔夫| 驻马店市| 乐安县| 紫阳县| 阳朔县| 永平县| 潢川县| 大新县| 湾仔区| 右玉县| 泾阳县| 大足县| 贡觉县| 宽甸| 南京市| 博白县| 天水市| 周口市| 伊通|