1
0
mirror of https://github.com/tomahawk-player/tomahawk.git synced 2025-03-21 16:29:43 +01:00

* Store lucene fields as INDEX_ANALYZED_NO_NORMS.

This commit is contained in:
Christian Muehlhaeuser 2014-10-03 05:55:07 +02:00
parent 3ad91db46a
commit d8954ce923

@ -135,13 +135,13 @@ FuzzyIndex::appendFields( const Tomahawk::IndexData& data )
if ( !data.track.isEmpty() )
{
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_NO_NORMS ) );
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_NO_NORMS ) );
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_NO_NORMS ) );
doc->add(newLucene<Field>( L"artistid", QString::number( data.artistId ).toStdWString(),
Field::STORE_YES, Field::INDEX_NO ) );
@ -152,7 +152,7 @@ FuzzyIndex::appendFields( const Tomahawk::IndexData& data )
else if ( !data.album.isEmpty() )
{
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_NO_NORMS ) );
doc->add(newLucene<Field>( L"albumid", QString::number( data.id ).toStdWString(),
Field::STORE_YES, Field::INDEX_NO ) );
@ -219,7 +219,7 @@ FuzzyIndex::search( const Tomahawk::query_ptr& query )
if ( query->isFullTextQuery() )
{
QString q = Tomahawk::DatabaseImpl::sortname( query->fullTextQuery() );
const QString q = Tomahawk::DatabaseImpl::sortname( query->fullTextQuery() );
FuzzyQueryPtr fqry = newLucene<FuzzyQuery>( newLucene<Term>( L"track", q.toStdWString() ) );
qry->add( boost::dynamic_pointer_cast<Query>( fqry ), BooleanClause::SHOULD );
@ -234,8 +234,8 @@ FuzzyIndex::search( const Tomahawk::query_ptr& query )
}
else
{
QString track = Tomahawk::DatabaseImpl::sortname( query->queryTrack()->track() );
QString artist = Tomahawk::DatabaseImpl::sortname( query->queryTrack()->artist() );
const QString track = Tomahawk::DatabaseImpl::sortname( query->queryTrack()->track() );
const QString artist = Tomahawk::DatabaseImpl::sortname( query->queryTrack()->artist() );
//QString album = Tomahawk::DatabaseImpl::sortname( query->queryTrack()->album() );
FuzzyQueryPtr fqry = newLucene<FuzzyQuery>( newLucene<Term>( L"track", track.toStdWString() ) );
@ -247,11 +247,11 @@ FuzzyIndex::search( const Tomahawk::query_ptr& query )
minScore = 0.00;
}
TopScoreDocCollectorPtr collector = TopScoreDocCollector::create( 50, false );
TopScoreDocCollectorPtr collector = TopScoreDocCollector::create( 20, true );
m_luceneSearcher->search( qry, collector );
Collection<ScoreDocPtr> hits = collector->topDocs()->scoreDocs;
for ( int i = 0; i < collector->getTotalHits() && i < 50; i++ )
for ( int i = 0; i < collector->getTotalHits() && i < 20; i++ )
{
DocumentPtr d = m_luceneSearcher->doc( hits[i]->doc );
float score = hits[i]->score;