當前位置:首頁 » 操作系統 » lucene源碼

lucene源碼

發布時間: 2022-01-23 13:19:00

① 我有lucene.net的源代碼。怎麼看。

直接轉換

② 求用lucene開發的web網頁搜索引擎java代碼

基本思想都是一樣的。伺服器端:抽取文本,建立索引。web端:構建索引查詢,高亮,排序,優化等。

③ lucene-3.6.0.tgz和lucene-3.6.0-src.tgz是啥啊,怎麼有兩個類似的文件包呢;

已經有答案了,很簡單.看到tgz結尾的就是linux相關操作系統使用的壓縮包,就想Windows系統下的zip 和rar結尾的壓縮包一樣.

.asc格式的程序文件,是壓縮過的Concept的程序文件,需要用Concept里的轉換Convert功能,而且,只能是低版本向高版本轉.

詳細一點說明,我給你找了一點資料

後綴為asp asa asc的文件都是ASP文件
Active Server Page(ASP,活動伺服器頁面)就是一個編程環境,在其中,可以混合使用HTML、腳本語言以及組件來創建伺服器端功能強大的Internet應用程序。
ASP的工作原理:

當在Web站點中融入ASP功能後,將發生以下事情:

1、用戶調出站點內容,默認頁面的擴展名是.asp。

2、瀏覽器從伺服器上請求ASP文件。

3、伺服器端腳本開始運行ASP。

4、ASP文件按照從上到下的順序開始處理,執行腳本命令,執行HTML頁面內容。

5、頁面信息發送到瀏覽器。

因為腳本是在伺服器端運行的,所以Web伺服器完成所有處理後,將標準的HTML頁面送往瀏覽器。這意味著,ASP只能在可以支持的伺服器(WINNT系列伺服器)上運行。讓腳本駐留在伺服器端的另外一個益處是:用戶不可能看到原始腳本程序的代碼,用戶看到的,僅僅是最終產生的HTML內容。計算過程在伺服器上進行,返回Html腳本,而不需要客戶端進行運算。WIN2003中使用的是ASP3.0版本,將較長使用的頁面存放在硬碟中(而不僅僅是在內存中),這意味著緩存了更多的原來需要重新編譯的內容,極大的提高了性能。

可以利用任何支持文本的編輯器或網頁設計器修改
利用IIS可以運行

④ 急求.NET寫的Lucene.Net+盤古分詞器的站內搜索源碼

解決方案例子:
Step1: IndexWriter indexwriter初始化IndexWriter//創建或寫索引庫文件的對象
Step2:Document doc新建一個Document對象
Step3:TextField field=new TextField(FN,Value,Store.Yes)//FN-索引欄位名,Value-資料庫中的值,第三個參數表示是否存儲,如果資料庫中有多個欄位,那就創建多個TextField對象,當然可以根據需求創建StringField對象、DoubleField對象等等
Step4:doc.add(field1);doc.Add(field2)...//將欄位添加到doc對象中,索引庫中都是按doc來存的,doc可以類比與資料庫中的行
Step5:indexwriter.addDocument(doc)//方法大概是這樣
Step6:indexwriter.commit();//提交
Step7:indexwriter.close();//關閉

⑤ 怎麼用lucene判斷兩篇文章的相似度的源碼

演算法中的求最大相似子字元串的方法LCS或許可以,它可以找到兩個字元串中最大相似的子字元串。
Java code

/*
* @author talent_marquis<甜菜侯爵>
* Email: [email protected]
* Copyright (C) 2007 talent_marquis<甜菜侯爵>
* All rights reserved.
*/

package ustc.mse.algorithms.dynamicProgramming;

/*
* LCS, Longest-Common-Subsequence
*/
public class LCS
{
public enum DIRECTION{ TOP, TOP_LEFT, LEFT };
private char[] first;
private char[] second;
private int[][] lcsTable;
private DIRECTION[][] lcsAssistTable;
private int lcsLength;
private String lcs_str, lcsMatrix_str, lcsAssistMatrix_str;
private StringBuffer str_buffer;

public LCS( String str1, String str2 )
{
first = str1.toCharArray();
second = str2.toCharArray();
lcsTable = new int[ first.length + 1 ][ second.length + 1 ];
lcsAssistTable = new DIRECTION[ first.length + 1 ][ second.length + 1];
lcs_str = null;
str_buffer = new StringBuffer();
}

public static void main(String[] args)
{
String a = "我抄我抄我抄抄抄:明月幾時有,把酒問青天,不知天上宮闕,今夕是何年";
String b = "蘇軾曾經寫過「明月幾時有,把酒問青天」的千古名句";

LCS lcs = new LCS( a, b );

lcs.getLCSLength();
lcs.runLCS();
println( "最大相似子字元串長度是:" + lcs.getLCSLength() );
println( "最大相似子字元串為:" + lcs.getLCS() );
}

public int getLCSLength()
{
lcsLength = getLCSLength( first, second );
return lcsLength;
}

private int getLCSLength( char[] one, char[] two )
{
lcsTable = new int[ one.length + 1 ][ two.length + 1 ];
lcsAssistTable = new DIRECTION[ one.length + 1 ][ two.length + 1];

for ( int i = 0; i < one.length ; i++ )
{
lcsTable[ i ][ 0 ] = 0;
}

for ( int j = 0; j < two.length - 1; j++ )
{
lcsTable[ 0 ][ j ] = 0;
}

for ( int i = 0; i < one.length; i++ )
{
for ( int j = 0; j < two.length; j++ )
{
if ( one[ i ] == two[ j ] )
{
lcsTable[ i + 1 ][ j + 1 ] = lcsTable[ i ][ j ] + 1;
lcsAssistTable[ i + 1 ][ j + 1 ] = DIRECTION.TOP_LEFT;
}
else if ( lcsTable[ i ][ j + 1 ] >= lcsTable[ i + 1 ][ j ] )
{
lcsTable[ i + 1 ][ j + 1 ] = lcsTable[ i ][ j + 1 ];
lcsAssistTable[ i + 1 ][ j + 1 ] = DIRECTION.TOP;
}
else
{
lcsTable[ i + 1 ][ j + 1 ] = lcsTable[ i + 1 ][ j ];
lcsAssistTable[ i + 1 ][ j + 1 ] = DIRECTION.LEFT;
}
}
}

lcsLength = lcsTable[ one.length ][ two.length ];
return lcsLength;
}

public void runLCS()
{
runLCS( lcsAssistTable, first, first.length, second.length );
lcs_str = str_buffer.toString();
}

private void runLCS( DIRECTION[][] lcsAssistTable, char[] one, int oneLength, int twoLength )
{
if( oneLength == 0 || twoLength == 0 )
{
return;
}

int i = oneLength ;
int j = twoLength ;

if( lcsAssistTable[ i ][ j ] == DIRECTION.TOP_LEFT )
{
runLCS( lcsAssistTable, one, i - 1, j -1 );
str_buffer.append( one[ i - 1 ] );
}
else if ( lcsAssistTable[ i ][ j ] == DIRECTION.TOP )
{
runLCS( lcsAssistTable, one, i - 1, j );
}
else
{
runLCS( lcsAssistTable, one, i, j -1 );
}

}

public String getLCSAssistMatrixString()
{
str_buffer = new StringBuffer();
for( DIRECTION[] row: lcsAssistTable)
{
for( DIRECTION element : row )
{
if( element == DIRECTION.LEFT )
{
str_buffer.append( "�� " );
}
else if (element == DIRECTION.TOP )
{
str_buffer.append( "�� " );
}
else if (element == DIRECTION.TOP_LEFT)
{
str_buffer.append( "�I " );
}
else
{
//str_buffer.append( "\t" );
}
}
str_buffer.append( "\n" );
}
lcsAssistMatrix_str = str_buffer.toString();

return lcsAssistMatrix_str;
}

public String getLCSMatrixString()
{
str_buffer = new StringBuffer();
for( int[] row: lcsTable)
{
for( int element : row )
{
str_buffer.append( element + " " );
}
str_buffer.append( "\n" );
}
lcsMatrix_str = str_buffer.toString();
return lcsMatrix_str;
}

public static void print( Object o )
{
System.out.print( o );
}

public static void println( Object o )
{
System.out.println( o );
}

public String getLCS()
{
return lcs_str;
}

/**
* @return first
*/
public char[] getFirstCharArray()
{
return first;
}

/**
* @return second
*/
public char[] getSecondCharArray()
{
return second;
}

/**
* @return lcsAssistTable
*/
public DIRECTION[][] getLcsAssistTable()
{
return lcsAssistTable;
}

/**
* @return lcsTable
*/
public int[][] getLcsTable()
{
return lcsTable;
}
}

⑥ eclipse中怎麼導入lucene-3.4.0-src.tgz的源碼包,下載的包是以.gz結尾的

tgz包是linux下常用的壓縮包格式,因為在linux下沒有Windows平台下的rar和zip壓縮包。如果,你是在windows平台下開發,建議你重新下載一個rar或zip格式的包。
如果你是在linux下開發,那麼你可以通過命令來減壓後使用。

⑦ 如何在eclipse中導入lucene源碼

1.啟動eclipse,使用svn插件從https //svn apache org/repos/asf/lucene把trunk代碼checkout出來。
2.如果你沒有安裝ant,那麼先安裝ant(ant.apache.org)。
3.進入cmd,切入到源代碼目錄(在lucene和solr目錄的上一級)。
4.然後使用ant eclipse(如果你沒有安裝ivy的話,ant會提示你安裝,按照提示安裝)
5.在eclipse中創建java project,勾掉Use default location,選擇luence,然後下一步直到完成導入lucene,同樣的導入solr。
6.因為solr引用lucene,所以在solr的buildpath中加入對lucene項目引用。

⑧ 請用lucene實現以下三種形式的查詢

對於關鍵字最基本的是Query query=TermQuery(new Term("name","jim"))
這樣只能搜出帶jim的關鍵字 像jims等都搜不出來 如果你沒有用分析器分詞的話Query query=TermQuery(new Term("name","張三"))是搜不出來張三的,可以的呢可以先把關鍵字分開然後放入boolquery中,就能模擬出類似like的效果
至於like%就要用到通配符查詢wildcardquery 至於最大的數目限制,一樓是正解 ,還有種方法就是你直接改lucene源碼

⑨ 如何獲取lucene的java源代碼

1.啟動eclipse,使用svn插件從把trunk代碼checkout出來。
2.如果你沒有安裝ant,那麼先安裝ant(ant.apache.org)。
3.進入cmd,切入到源代碼目錄(在lucene和solr目錄的上一級)。
4.然後使用ant eclipse(如果你沒有安裝ivy的話,ant會提示你安裝,按照提示安裝)
5.在eclipse中創建java project,勾掉Use default location,選擇luence,然後下一步直到完成導入lucene,同樣的導入solr。
6.因為solr引用lucene,所以在solr的buildpath中加入對lucene項目引用。

⑩ .Net Lucene 如何使用Term+IndexWriter實現更新一條索引,要具體點代碼,有案例源碼發我QQ:326273458

具體代碼記不不清了,同樣是用indexwriter創建索引方法,(具體你自己找找文檔)形如new IndexWriter(arg1,arg2,arg3...) 在其中一個參數 bool isCreate...(增量索引)false代表是增量,即是在原有索引庫基礎上新增索引 ,簡單地說就是在創建索引時把參數bool isCreate...(增量索引)設為false即可

熱點內容
綠色linux 發布:2024-11-14 12:56:11 瀏覽:349
游戲本緩存 發布:2024-11-14 12:55:28 瀏覽:649
微軟提供的編譯軟體 發布:2024-11-14 12:55:16 瀏覽:17
長沙java培訓機構哪家好 發布:2024-11-14 12:40:53 瀏覽:228
外存儲器硬碟能存儲的高清電影數 發布:2024-11-14 12:33:23 瀏覽:265
python分號作用 發布:2024-11-14 12:31:50 瀏覽:223
方舟編譯器下載要錢嗎 發布:2024-11-14 12:29:20 瀏覽:62
jspoa源碼 發布:2024-11-14 12:21:31 瀏覽:420
不記得了密碼怎麼辦 發布:2024-11-14 12:18:58 瀏覽:442
python字元串的大小 發布:2024-11-14 12:17:24 瀏覽:222