mirror of
https://github.com/tomahawk-player/tomahawk.git
synced 2025-08-07 22:56:42 +02:00
* Switch to SimpleAnalyzer and optimize index in endIndexing() again.
This commit is contained in:
@@ -43,7 +43,7 @@ FuzzyIndex::FuzzyIndex( QObject* parent, const QString& filename, bool wipe )
|
|||||||
tDebug() << "Opening Lucene directory:" << m_lucenePath;
|
tDebug() << "Opening Lucene directory:" << m_lucenePath;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
m_analyzer = newLucene<StandardAnalyzer>(LuceneVersion::LUCENE_CURRENT);
|
m_analyzer = newLucene<SimpleAnalyzer>();
|
||||||
m_luceneDir = FSDirectory::open( m_lucenePath.toStdWString() );
|
m_luceneDir = FSDirectory::open( m_lucenePath.toStdWString() );
|
||||||
}
|
}
|
||||||
catch ( LuceneException& error )
|
catch ( LuceneException& error )
|
||||||
@@ -127,7 +127,7 @@ void
|
|||||||
FuzzyIndex::endIndexing()
|
FuzzyIndex::endIndexing()
|
||||||
{
|
{
|
||||||
tDebug( LOGVERBOSE ) << Q_FUNC_INFO << "Finishing indexing:" << m_lucenePath;
|
tDebug( LOGVERBOSE ) << Q_FUNC_INFO << "Finishing indexing:" << m_lucenePath;
|
||||||
// m_luceneWriter->optimize();
|
m_luceneWriter->optimize();
|
||||||
m_luceneWriter->close();
|
m_luceneWriter->close();
|
||||||
m_luceneWriter.reset();
|
m_luceneWriter.reset();
|
||||||
|
|
||||||
@@ -146,13 +146,13 @@ FuzzyIndex::appendFields( const Tomahawk::IndexData& data )
|
|||||||
if ( !data.track.isEmpty() )
|
if ( !data.track.isEmpty() )
|
||||||
{
|
{
|
||||||
doc->add(newLucene<Field>(L"fulltext", Tomahawk::DatabaseImpl::sortname( QString( "%1 %2" ).arg( data.artist ).arg( data.track ) ).toStdWString(),
|
doc->add(newLucene<Field>(L"fulltext", Tomahawk::DatabaseImpl::sortname( QString( "%1 %2" ).arg( data.artist ).arg( data.track ) ).toStdWString(),
|
||||||
Field::STORE_NO, Field::INDEX_NOT_ANALYZED ) );
|
Field::STORE_NO, Field::INDEX_ANALYZED ) );
|
||||||
|
|
||||||
doc->add(newLucene<Field>(L"track", Tomahawk::DatabaseImpl::sortname( data.track ).toStdWString(),
|
doc->add(newLucene<Field>(L"track", Tomahawk::DatabaseImpl::sortname( data.track ).toStdWString(),
|
||||||
Field::STORE_NO, Field::INDEX_NOT_ANALYZED ) );
|
Field::STORE_NO, Field::INDEX_ANALYZED ) );
|
||||||
|
|
||||||
doc->add(newLucene<Field>(L"artist", Tomahawk::DatabaseImpl::sortname( data.artist ).toStdWString(),
|
doc->add(newLucene<Field>(L"artist", Tomahawk::DatabaseImpl::sortname( data.artist ).toStdWString(),
|
||||||
Field::STORE_NO, Field::INDEX_NOT_ANALYZED ) );
|
Field::STORE_NO, Field::INDEX_ANALYZED ) );
|
||||||
|
|
||||||
doc->add(newLucene<Field>(L"artistid", QString::number( data.artistId ).toStdWString(),
|
doc->add(newLucene<Field>(L"artistid", QString::number( data.artistId ).toStdWString(),
|
||||||
Field::STORE_YES, Field::INDEX_NO ) );
|
Field::STORE_YES, Field::INDEX_NO ) );
|
||||||
@@ -163,7 +163,7 @@ FuzzyIndex::appendFields( const Tomahawk::IndexData& data )
|
|||||||
else if ( !data.album.isEmpty() )
|
else if ( !data.album.isEmpty() )
|
||||||
{
|
{
|
||||||
doc->add(newLucene<Field>(L"album", Tomahawk::DatabaseImpl::sortname( data.album ).toStdWString(),
|
doc->add(newLucene<Field>(L"album", Tomahawk::DatabaseImpl::sortname( data.album ).toStdWString(),
|
||||||
Field::STORE_NO, Field::INDEX_NOT_ANALYZED ) );
|
Field::STORE_NO, Field::INDEX_ANALYZED ) );
|
||||||
|
|
||||||
doc->add(newLucene<Field>(L"albumid", QString::number( data.id ).toStdWString(),
|
doc->add(newLucene<Field>(L"albumid", QString::number( data.id ).toStdWString(),
|
||||||
Field::STORE_YES, Field::INDEX_NO ) );
|
Field::STORE_YES, Field::INDEX_NO ) );
|
||||||
@@ -268,11 +268,11 @@ FuzzyIndex::search( const Tomahawk::query_ptr& query )
|
|||||||
minScore = 0.00;
|
minScore = 0.00;
|
||||||
}
|
}
|
||||||
|
|
||||||
TopScoreDocCollectorPtr collector = TopScoreDocCollector::create( 99999, false );
|
TopScoreDocCollectorPtr collector = TopScoreDocCollector::create( 50, false );
|
||||||
m_luceneSearcher->search( qry, collector );
|
m_luceneSearcher->search( qry, collector );
|
||||||
Collection<ScoreDocPtr> hits = collector->topDocs()->scoreDocs;
|
Collection<ScoreDocPtr> hits = collector->topDocs()->scoreDocs;
|
||||||
|
|
||||||
for ( uint i = 0; i < collector->getTotalHits(); i++ )
|
for ( uint i = 0; i < collector->getTotalHits() && i < 50; i++ )
|
||||||
{
|
{
|
||||||
DocumentPtr d = m_luceneSearcher->doc( hits[i]->doc );
|
DocumentPtr d = m_luceneSearcher->doc( hits[i]->doc );
|
||||||
float score = hits[i]->score;
|
float score = hits[i]->score;
|
||||||
|
@@ -68,7 +68,7 @@ private:
|
|||||||
QMutex m_mutex;
|
QMutex m_mutex;
|
||||||
QString m_lucenePath;
|
QString m_lucenePath;
|
||||||
|
|
||||||
boost::shared_ptr<Lucene::StandardAnalyzer> m_analyzer;
|
boost::shared_ptr<Lucene::SimpleAnalyzer> m_analyzer;
|
||||||
Lucene::IndexWriterPtr m_luceneWriter;
|
Lucene::IndexWriterPtr m_luceneWriter;
|
||||||
Lucene::IndexReaderPtr m_luceneReader;
|
Lucene::IndexReaderPtr m_luceneReader;
|
||||||
Lucene::DirectoryPtr m_luceneDir;
|
Lucene::DirectoryPtr m_luceneDir;
|
||||||
|
Reference in New Issue
Block a user