【发布时间】:2014-07-23 15:03:29
【问题描述】:
代码:
private static void AddTextToIndex(string filename, string pdfBody, IndexWriter writer)
{
Document doc = new Document();
doc.Add(new Field("fileName", filename.ToString(), Field.Store.YES, Field.Index.NOT_ANALYZED));
doc.Add(new Field("pdfBody", pdfBody.ToString(), Field.Store.NO, Field.Index.NOT_ANALYZED));
writer.AddDocument(doc);
}
protected void txtBoxSearchPDF_Click(object sender, EventArgs e)
{
//some code
string searchQuery = txtBoxSearchString.Text;
Term t = new Term("fileName",searchQuery+"/i");
RegexQuery regQuer = new RegexQuery(t);
TopDocs resultDocs = indexSearch.Search(regQuer, indexReader.MaxDoc);
var hits = resultDocs.ScoreDocs;
foreach (var hit in hits)
{
var documentFromSearcher = indexSearch.Doc(hit.Doc);
string getResult = documentFromSearcher.Get("fileName");
string formattedResult = getResult.Replace(" ", "%20");
sb.AppendLine(@"<a href=https://de.com.edu/search/COM-Syllabi/" + formattedResult+ ">" + getResult+"</a>");
sb.AppendLine("<br>");
}
}
基本上我要做的就是使用正则表达式,这样我就可以完全匹配,但我希望搜索不区分大小写。但是添加/i 选项实际上并没有使它成为一个正则表达式,它似乎所做的只是让搜索词在文本框中输入与/i 连接的任何内容。
有什么想法吗?
【问题讨论】: