我将第一次使用 lucene.net,所以当看到这行代码时会产生一些困惑。我得到了一个使用 lucene 搜索单词的示例代码,我不清楚几行。这里是下面的示例代码。
问题 1
ListBox1.Items.Clear();
var searcher = new Lucene.Net.Search.IndexSearcher(MapPath("~/searchlucene/"));
var oParser = new Lucene.Net.QueryParsers.QueryParser("content", new StandardAnalyzer());
string sHeader = " OR (header:" + TextBox1.Text + ")";
string sType = " OR (type:" + TextBox1.Text + ")";
string sSearchQuery = "(" + TextBox1.Text + sHeader + sType + ")";
var oHitColl = searcher.Search(oParser.Parse(sSearchQuery));
for (int i = 0; i < oHitColl.Length(); i++)
{
Document oDoc = oHitColl.Doc(i);
ListBox1.Items.Add(new ListItem(oDoc.Get("header") + oDoc.Get("type") + oDoc.Get("content")));
}
searcher.Close();
问题2
这下面的行不清楚发生了什么......!请讨论下面每一行的目标。
string sHeader = " OR (header:" + TextBox1.Text + ")";
string sType = " OR (type:" + TextBox1.Text + ")";
string sSearchQuery = "(" + TextBox1.Text + sHeader + sType + ")";
var oHitColl = searcher.Search(oParser.Parse(sSearchQuery));
for (int i = 0; i < oHitColl.Length(); i++)
{
Document oDoc = oHitColl.Doc(i);
ListBox1.Items.Add(new ListItem(oDoc.Get("header") + oDoc.Get("type") + oDoc.Get("content")));
}
问题 3
什么是标题:
什么是类型:
为什么在搜索关键字(如字符串 sSearchQuery = "(" + TextBox1.Text + sHeader + sType + ")" 之后连接头和类型);
问题 4
为什么搜索查询内容中缺少内容如果我这样写会是什么结果
string sHeader = " OR (header:" + TextBox1.Text + ")";
string sType = " OR (type:" + TextBox1.Text + ")";
string sContent = " OR (content:" + TextBox1.Text + ")";
string sSearchQuery = "(" + TextBox1.Text + sHeader + sType + sContent ")";
为什么标题,类型和内容正在阅读....为什么? * oDoc.Get("header") + oDoc.Get("type") + oDoc.Get("content") *
为什么我需要阅读像 oDoc.Get("header") + oDoc.Get("type") + oDoc.Get("content")这样的标题、类型和内容, 我们只能读取内容......为什么类型和标题也需要??