Я создал индекс с Lucene.NET и оптимизировал его. Есть около 30000 записей, однако при поиске требуется около 30 секунд, чтобы получить какие-либо результаты!
Моя конфигурация выглядит так:
<add key="hibernate.search.default.directory_provider" value="NHibernate.Search.Store.FSDirectoryProvider, NHibernate.Search" />
<add key="hibernate.search.default.indexBase" value="Index"/>
<add key="hibernate.search.default.exclusive_index_use" value="true" />
<add key="hibernate.search.analyzer" value="Lucene.Net.Analysis.Standard.StandardAnalyzer, Lucene.Net"/>
<add key="show_sql" value="true"/>
И мой запрос выглядит так:
IFullTextSession fullTextSession = NHibernate.Search.Search.CreateFullTextSession(session);
// Build our Lucene query
StringBuilder queryString = new StringBuilder();
// Split the search string into keywords
string[] words = searchTerms.Split(" ".ToCharArray());
foreach (string keyword in words)
{
if (!String.IsNullOrEmpty(keyword))
{
queryString.AppendFormat(" BusinessName:{0}", keyword);
}
}
QueryParser parser = new QueryParser(queryString.ToString(), new StandardAnalyzer());
Query luceneQuery = parser.Parse(queryString.ToString());
// Transform the Lucene query to an NHibernate query,
// and limit the result set types to MyEntity
IQuery query = fullTextSession.CreateFullTextQuery(luceneQuery);
return query.List();
У кого-нибудь из профессионалов есть идеи, почему он будет работать так медленно?