[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdebase/runtime/nepomuk/services/queryservice
From:       Sebastian Trueg <sebastian () trueg ! de>
Date:       2010-06-01 9:57:43
Message-ID: 20100601100400.87191AC8C8 () svn ! kde ! org
[Download RAW message or body]

SVN commit 1133237 by trueg:

Calculate the full text score in the query itself instead of the query service.

 M  +6 -22     searchthread.cpp  


--- trunk/KDE/kdebase/runtime/nepomuk/services/queryservice/searchthread.cpp \
#1133236:1133237 @@ -143,22 +143,6 @@
 }
 
 
-namespace {
-    /**
-     * Tries to extract a score depth from a variable name. Full-text matching \
                scores are encoded as ?<VARNAME>_score_<DEPTH>
-     * by the query API.
-     */
-    int extractScoreDepth( const QString& var ) {
-        static QRegExp s_scoreRegExp( QLatin1String( "\\w+_score_(\\d+)" ) );
-        if ( s_scoreRegExp.exactMatch( var ) ) {
-            return s_scoreRegExp.cap( 1 ).toInt();
-        }
-        else {
-            return -1;
-        }
-    }
-}
-
 Nepomuk::Query::Result Nepomuk::Query::SearchThread::extractResult( const \
Soprano::QueryResultIterator& it ) const  {
     kDebug() << it.binding( 0 ).uri();
@@ -174,19 +158,19 @@
         names.removeAll( rpIt.key() );
     }
 
+    static const char* s_scoreVarName = "_n_f_t_m_s_";
+
     Soprano::BindingSet set;
-    int totalScore = 0;
+    int score = 0;
     Q_FOREACH( const QString& var, names ) {
-        int depth = extractScoreDepth( var );
-        if ( depth >= 0 ) {
-            totalScore += it[var].literal().toInt()/( depth+1 );
-        }
+        if ( var == QLatin1String( s_scoreVarName ) )
+            score = it[var].literal().toInt();
         else
             set.insert( var, it[var] );
     }
 
     result.setAdditionalBindings( set );
-    result.setScore( ( double )totalScore );
+    result.setScore( ( double )score );
 
     // score will be set above
     return result;


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic