当前位置:首页 » 操作系统 » 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即可

热点内容
数据库设计模板 发布:2024-11-15 00:47:25 浏览:825
编程的悟性 发布:2024-11-15 00:47:24 浏览:733
主流可编译语言 发布:2024-11-15 00:42:23 浏览:729
excel缓存清除 发布:2024-11-15 00:39:53 浏览:486
机械键盘可编程 发布:2024-11-15 00:39:09 浏览:912
php判断字符开头 发布:2024-11-15 00:35:33 浏览:507
网易苹果游戏怎么转移到安卓 发布:2024-11-15 00:07:52 浏览:270
win7php环境搭建 发布:2024-11-15 00:06:55 浏览:17
erpjava 发布:2024-11-14 23:52:23 浏览:253
电脑版地平线四怎么连上服务器 发布:2024-11-14 23:46:42 浏览:472