internal void Search()
{
if (_luke.IndexReader == null)
{
_luke.ShowStatus(_luke.resources.GetString("NoIndex"));
return;
}
Cursor.Current = Cursors.WaitCursor;
string analyzerName = Analyzing.GetAnalyzerName((string)comboAnalyzer.SelectedItem);
comboAnalyzer.SelectedItem = analyzerName;
queryParser = CreateQueryParser(analyzerName);
string queryString = textSearch.Text;
if (queryString == string.Empty)
{
_luke.ShowStatus(_luke.resources.GetString("EmptyQuery"));
return;
}
IndexSearcher searcher = null;
listSearch.BeginUpdate();
listSearch.Items.Clear();
listSearch.EndUpdate();
try
{
Query q = queryParser.Parse(queryString);
if (searcher != null) searcher.Close();
searcher = new IndexSearcher(_luke.Directory, true);
textParsed.Text = q.ToString();
_Search(q, searcher);
}
catch (Exception e)
{
_luke.ErrorMessage(e.Message);
}
finally
{
if (searcher != null) try { searcher.Close(); }
catch (Exception) { };
}
Cursor.Current = Cursors.Default;
}