婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 基于ASP.NET的lucene.net全文搜索實現(xiàn)步驟

基于ASP.NET的lucene.net全文搜索實現(xiàn)步驟

熱門標簽:蘋果手機凱立德地圖標注 電話機器人軟件銷售工作 百度ai地圖標注 同安公安400電話怎么申請流程 玉林市機器人外呼系統(tǒng)哪家好 預(yù)測式外呼系統(tǒng)使用說明 申請400電話手續(xù) 合肥電銷外呼系統(tǒng)哪家公司做的好 南陽外呼系統(tǒng)定制化

在做項目的時候,需求添加全文搜索,選擇了lucene.net方向,調(diào)研了一下,基本實現(xiàn)了需求,現(xiàn)在將它分享給大家。理解不深請多多包涵。

在完成需求的時候,查看的大量的資料,本文不介紹詳細的lucene.net工程建立,只介紹如何對文檔進行全文搜索。對于如何建立lucene.net的工程請大家訪問

使用lucene.net搜索分為兩個部分,首先是創(chuàng)建索引,創(chuàng)建文本內(nèi)容的索引,其次是根據(jù)創(chuàng)建的索引進行搜索。那么如何對文檔進行索引呢,主要是對文檔的內(nèi)容進行索引,關(guān)鍵是提取出文檔的內(nèi)容,按照常規(guī)實現(xiàn),由簡到難,提取txt格式的文本相對比較簡單,如果實現(xiàn)了提取txt文本,接下來就容易多了,萬丈高樓平地起,這就是地基。

1.首先創(chuàng)建ASP.NET頁面。

這是一個極其簡單的頁面,創(chuàng)建頁面之后,雙擊各個按鈕生成相應(yīng)的點擊事件,在相應(yīng)的點擊事件中實現(xiàn)程序設(shè)計。

2.實現(xiàn)索引部分。

前面已經(jīng)說到了,索引主要是根據(jù)文本內(nèi)容建立索引,所以要提取文本內(nèi)容。創(chuàng)建提取txt格式文檔文本內(nèi)容的函數(shù)。

復(fù)制代碼 代碼如下:
 
//提取txt文件
public static string FileReaderAll(FileInfo fileName)
{
//讀取文本內(nèi)容,并且默認編碼格式,防止出現(xiàn)亂碼
StreamReader reader = new StreamReader(fileName.FullName, System.Text.Encoding.Default);
string line = "";
string temp = "";
//循環(huán)讀取文本內(nèi)容
while ((line = reader.ReadLine()) != null)
{
temp += line;
}
reader.Close();
//返回字符串,用于lucene.net生成索引
return temp;
}

文本內(nèi)容已經(jīng)提取出來了,接下來要根據(jù)提取的內(nèi)容建立索引
復(fù)制代碼 代碼如下:
 
protected void Button2_Click(object sender, EventArgs e)
{
//判斷存放文本的文件夾是否存在
if (!System.IO.Directory.Exists(filesDirectory))
{
Response.Write("script>alert('指定的目錄不存在');/script>");
return;
}
//讀取文件夾內(nèi)容
DirectoryInfo dirInfo = new DirectoryInfo(filesDirectory);
FileInfo[] files = dirInfo.GetFiles("*.*");
//文件夾判空
if (files.Count() == 0)
{
Response.Write("script>alert('Files目錄下沒有文件');/script>");
return;
}
//判斷存放索引的文件夾是否存在,不存在創(chuàng)建
if (!System.IO.Directory.Exists(indexDirectory))
{
System.IO.Directory.CreateDirectory(indexDirectory);
}
//創(chuàng)建索引
IndexWriter writer = new IndexWriter(FSDirectory.Open(new DirectoryInfo(indexDirectory)),
analyzer, true, IndexWriter.MaxFieldLength.LIMITED);

for (int i = 0; i files.Count(); i++)
{
string str = "";
FileInfo fileInfo = files[i];
//判斷文件格式,為以后其他文件格式做準備
if (fileInfo.FullName.EndsWith(".txt") || fileInfo.FullName.EndsWith(".xml"))
{
//獲取文本
str = FileReaderAll(fileInfo);
}
Lucene.Net.Documents.Document doc = new Lucene.Net.Documents.Document();
doc.Add(new Lucene.Net.Documents.Field("FileName", fileInfo.Name, Lucene.Net.Documents.Field.Store.YES, Lucene.Net.Documents.Field.Index.ANALYZED));
//根據(jù)文本生成索引
doc.Add(new Lucene.Net.Documents.Field("Content", str, Lucene.Net.Documents.Field.Store.YES, Lucene.Net.Documents.Field.Index.ANALYZED));
doc.Add(new Lucene.Net.Documents.Field("Path", fileInfo.FullName, Lucene.Net.Documents.Field.Store.YES, Lucene.Net.Documents.Field.Index.NO));
//添加生成的索引
writer.AddDocument(doc);
writer.Optimize();
}
writer.Dispose();
Response.Write("script>alert('索引創(chuàng)建成功');/script>");
}

3.索引創(chuàng)建完了,接下來就是搜索,搜索只要按照固定的格式書寫不會出現(xiàn)錯誤。
復(fù)制代碼 代碼如下:
 
protected void Button1_Click(object sender, EventArgs e)
{
//獲取關(guān)鍵字
string keyword = TextBox1.Text.Trim();
int num = 10;
//關(guān)鍵字判空
if (string.IsNullOrEmpty(keyword))
{
Response.Write("script>alert('請輸入要查找的關(guān)鍵字');/script>");
return;
}

IndexReader reader = null;
IndexSearcher searcher = null;
try
{
reader = IndexReader.Open(FSDirectory.Open(new DirectoryInfo(indexDirectory)), true);
searcher = new IndexSearcher(reader);
//創(chuàng)建查詢
PerFieldAnalyzerWrapper wrapper = new PerFieldAnalyzerWrapper(analyzer);
wrapper.AddAnalyzer("FileName", analyzer);
wrapper.AddAnalyzer("Path", analyzer);
wrapper.AddAnalyzer("Content", analyzer);
string[] fields = { "FileName", "Path", "Content" };

QueryParser parser = new MultiFieldQueryParser(Lucene.Net.Util.Version.LUCENE_30, fields, wrapper);
//根據(jù)關(guān)鍵字查詢
Query query = parser.Parse(keyword);

TopScoreDocCollector collector = TopScoreDocCollector.Create(num, true);

searcher.Search(query, collector);
//這里會根據(jù)權(quán)重排名查詢順序
var hits = collector.TopDocs().ScoreDocs;

int numTotalHits = collector.TotalHits;

//以后就可以對獲取到的collector數(shù)據(jù)進行操作
for (int i = 0; i hits.Count(); i++)
{
var hit = hits[i];
Lucene.Net.Documents.Document doc = searcher.Doc(hit.Doc);
Lucene.Net.Documents.Field fileNameField = doc.GetField("FileName");
Lucene.Net.Documents.Field pathField = doc.GetField("Path");
Lucene.Net.Documents.Field contentField = doc.GetField("Content");
//在頁面循環(huán)輸出表格
strTable.Append("tr>");
strTable.Append("td>" + fileNameField.StringValue + "/td>");
strTable.Append("/tr>");
strTable.Append("tr>");
strTable.Append("td>" + pathField.StringValue + "/td>");
strTable.Append("/tr>");
strTable.Append("tr>");
strTable.Append("td>" + contentField.StringValue.Substring(0, 300) + "/td>");
strTable.Append("/tr>");
}
}
finally
{
if (searcher != null)
searcher.Dispose();

if (reader != null)
reader.Dispose();
}
}

現(xiàn)在整個lucene.net搜索全文的過程就建立完了,現(xiàn)在可以搜索txt格式的文件,搜索其他格式的文件在以后添加,主要核心思想就是提取各個不同格式文件的文本內(nèi)容。

顯示效果如下:

在以后的博文里繼續(xù)接受搜索其他格式的文檔。

您可能感興趣的文章:
  • Lucene.Net實現(xiàn)搜索結(jié)果分類統(tǒng)計功能(中小型網(wǎng)站)
  • Java實現(xiàn)lucene搜索功能的方法(推薦)
  • 基于Lucene的Java搜索服務(wù)器Elasticsearch安裝使用教程
  • 使用Java的Lucene搜索工具對檢索結(jié)果進行分組和分頁
  • 使用Lucene.NET實現(xiàn)站內(nèi)搜索
  • 使用Lucene實現(xiàn)一個簡單的布爾搜索功能

標簽:南京 嘉興 南昌 南京 海南 淄博 臺州 揚州

巨人網(wǎng)絡(luò)通訊聲明:本文標題《基于ASP.NET的lucene.net全文搜索實現(xiàn)步驟》,本文關(guān)鍵詞  基于,ASP.NET,的,lucene.net,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《基于ASP.NET的lucene.net全文搜索實現(xiàn)步驟》相關(guān)的同類信息!
  • 本頁收集關(guān)于基于ASP.NET的lucene.net全文搜索實現(xiàn)步驟的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    国产欧美日韩麻豆91| 91精品国产综合久久久久久漫画| 蜜臀av性久久久久蜜臀av麻豆| 亚洲妇女屁股眼交7| 亚洲一区二三区| 天天综合色天天综合| 日韩有码一区二区三区| 蜜臀av性久久久久蜜臀aⅴ| 激情欧美一区二区| 国产 日韩 欧美大片| 99麻豆久久久国产精品免费| 色综合久久久久久久| 欧美亚洲国产bt| 欧美一区二区三区在线观看| 久久综合九色综合欧美98| 国产偷国产偷亚洲高清人白洁 | 成人免费视频一区| 93久久精品日日躁夜夜躁欧美| 91同城在线观看| 欧美亚洲一区二区在线| 91精品国产综合久久久蜜臀图片| 久久这里只有精品视频网| 国产精品国产三级国产aⅴ原创| 亚洲欧美电影一区二区| 日产国产欧美视频一区精品| 国产福利一区二区三区视频 | 777亚洲妇女| 精品免费国产一区二区三区四区| 中文字幕免费一区| 亚洲国产精品麻豆| 国产黄人亚洲片| 欧美日韩精品专区| 欧美国产一区二区| 蜜桃在线一区二区三区| av在线播放不卡| 日韩欧美你懂的| 亚洲免费观看高清在线观看| 黑人巨大精品欧美黑白配亚洲| 99久久精品免费| 精品国产乱码久久久久久蜜臀| 中文字幕一区三区| 精品亚洲porn| 欧美日韩成人在线一区| 中文字幕在线一区二区三区| 蜜桃一区二区三区在线| 在线观看亚洲a| 国产精品毛片a∨一区二区三区| 蜜芽一区二区三区| 欧美久久久久久久久久| 一区二区三区日韩欧美| 波多野结衣91| 中文一区一区三区高中清不卡| 久久国产日韩欧美精品| 欧美亚洲动漫精品| 亚洲欧洲一区二区三区| 国产福利一区二区三区视频在线| 日韩欧美一级二级三级久久久| 午夜久久久久久久久久一区二区| 99久久亚洲一区二区三区青草| 亚洲国产精品黑人久久久| 久久se这里有精品| 日韩欧美国产wwwww| 日韩国产一区二| 4438亚洲最大| 免费成人小视频| 欧美一级搡bbbb搡bbbb| 日韩va欧美va亚洲va久久| 欧美一区日韩一区| 丝袜美腿亚洲综合| 欧美一级免费观看| 蜜臀av性久久久久蜜臀av麻豆| 91精品国产综合久久蜜臀| 美脚の诱脚舐め脚责91| 日韩精品中文字幕在线不卡尤物| 蜜臀av性久久久久蜜臀aⅴ| 欧美tk—视频vk| 国产福利91精品一区二区三区| 国产偷国产偷精品高清尤物| 成人性生交大片免费看视频在线 | 中文字幕第一区综合| 高潮精品一区videoshd| 国产精品美女久久久久久| www.亚洲在线| 亚洲免费三区一区二区| 欧美日韩综合不卡| 奇米影视一区二区三区| 久久先锋资源网| 成人久久视频在线观看| 亚洲高清视频中文字幕| 欧美成人一级视频| 99久久免费国产| 日韩不卡一二三区| 久久蜜桃一区二区| 色综合久久久久综合体桃花网| 亚洲a一区二区| 久久婷婷久久一区二区三区| 91一区二区三区在线播放| 午夜精品久久久久久久久| 精品国精品国产| av亚洲精华国产精华精华| 日韩精品国产精品| 国产亚洲福利社区一区| 精品视频在线免费| 国产成人av资源| 午夜久久久久久久久久一区二区| 国产亚洲精品中文字幕| 欧美日韩一区二区在线视频| 国产又黄又大久久| 婷婷成人综合网| 国产精品白丝在线| 欧美mv日韩mv国产网站| 日本丶国产丶欧美色综合| 国产一区二区三区久久久| 午夜精品一区在线观看| 国产精品国产精品国产专区不片| 欧美丰满嫩嫩电影| 在线免费视频一区二区| 国产成人午夜高潮毛片| 人禽交欧美网站| 亚洲人妖av一区二区| www久久精品| 欧美高清视频www夜色资源网| www.欧美色图| 国产精品亚洲午夜一区二区三区| 天天综合网天天综合色| 亚洲国产精品欧美一二99| 中文字幕日本乱码精品影院| 久久美女高清视频| www久久久久| 日韩一级大片在线观看| 欧美日韩在线不卡| 色老汉一区二区三区| 不卡视频在线看| 国产精品白丝jk黑袜喷水| 美女爽到高潮91| 日本不卡一二三区黄网| 视频一区免费在线观看| 午夜精品久久一牛影视| 亚洲bt欧美bt精品| 日韩精品1区2区3区| 亚洲一区二区三区国产| 亚洲综合色噜噜狠狠| 亚洲天堂av老司机| 亚洲视频一二区| 亚洲免费观看高清| 亚洲另类色综合网站| 亚洲欧洲制服丝袜| 亚洲午夜久久久| 亚洲成a人片在线观看中文| 亚洲第一主播视频| 日韩vs国产vs欧美| 精品在线免费观看| 国产成人精品一区二区三区四区 | 精品日本一线二线三线不卡| 欧美一区二区大片| 精品三级在线看| 日本一区二区三区国色天香 | 老司机一区二区| 精品一区二区在线观看| 国产专区综合网| www.欧美.com| 欧美日韩高清影院| 精品欧美一区二区三区精品久久| 久久久99免费| 中文字幕一区二区5566日韩| 亚洲精品视频免费观看| 亚欧色一区w666天堂| 久久99精品久久久久婷婷| 国产激情偷乱视频一区二区三区| 99re视频这里只有精品| 欧美伦理电影网| 国产人伦精品一区二区| 一区二区欧美精品| 舔着乳尖日韩一区| 国产91精品露脸国语对白| 色狠狠一区二区三区香蕉| 日韩精品一区二区三区四区视频| 欧美国产精品中文字幕| 一区二区不卡在线播放| 国产综合色视频| 色综合av在线| 欧美成人精品3d动漫h| 国产精品免费看片| 日韩中文字幕一区二区三区| 精品亚洲成a人在线观看| 色哟哟亚洲精品| 久久婷婷一区二区三区| 香蕉久久一区二区不卡无毒影院| 国产老女人精品毛片久久| 欧美调教femdomvk| 国产日韩欧美高清| 偷拍与自拍一区| av动漫一区二区| 日韩一区二区电影在线| 亚洲三级视频在线观看| 美脚の诱脚舐め脚责91| 欧美日韩精品欧美日韩精品一 | 国产精品色眯眯| 奇米亚洲午夜久久精品| 色一区在线观看|