[Nepomuk] Help to understand how to build a query

François K. daitheflu at free.fr
Thu Sep 22 12:35:31 UTC 2011


Hi guys,

Thank you once more for your help.
I'm putting your names right now on the list of people to whom I owe at least one beer.

I think I've done something very similar to what Sebastian wrote.
Does the order of "filters" matters when building the query ?
For example : does 1. addIncludeFolder and 2. Set the Terms gives the same results as 1. Set the Terms and 2. addIncludeFolder ?

If not, I'll try to see if my file indexer is working properly.

Thanks again :)

-- 
François






----- "Sebastian Trüg" <trueg at kde.org> a écrit :

> De: "Sebastian Trüg" <trueg at kde.org>
> À: "Vishesh Handa" <handa.vish at gmail.com>
> Cc: nepomuk at kde.org
> Envoyé: Jeudi 22 Septembre 2011 14h28:03 GMT +01:00 Amsterdam / Berlin / Berne / Rome / Stockholm / Vienne
> Objet: Re: [Nepomuk] Help to understand how to build a query
>
> On 09/22/2011 02:24 PM, Vishesh Handa wrote:
> > 
> > 
> > On Thu, Sep 22, 2011 at 5:42 PM, Sebastian Trüg <trueg at kde.org
> > <mailto:trueg at kde.org>> wrote:
> > 
> >     Hi Francois,
> > 
> >     Here is the C++ code which would do it:
> > 
> >     OrTerm mimeTypeTerm;
> >     foreach(QString mimeType, mimeTypes)
> >       mimeTypeTerm.addSubTerm(ComparisonTerm(NIE::mimeType(),
> mimeType,
> >             ComparisonTerm::Equal);
> > 
> >     FileQuery query(AndTerm(mimeTypeTerm,
> ResourceTypeTerm(NFO::Video());
> >     foreach(QString folder, myFolders)
> >      query.addIncludeFolder(folder);
> > 
> > 
> > You could also do a -
> > 
> > FileQuery query( mimeTypeTerm && ResourceTypeTerm(NFO::Video()) );
> 
> Not in Python. :)
> 
> > 
> > 
> >     That's it. If you want you can remove the ResourceTypeTerm just
> for
> >     testing.
> >     If this query does not work maybe your file indexer is
> disabled?
> > 
> >     Cheers,
> >     Sebastian
> > 
> >     On 09/22/2011 11:13 AM, François K. wrote:
> >     > Hi !
> >     >
> >     > I'm trying to understand how to build a simple query, using
> the
> >     query API.
> >     > My goal is pretty simple : I want to list all video files
> stored
> >     in some given directories that Phonon can play.
> >     >
> >     > I tried several "things" without success which leads me to
> the
> >     asumption that I might have misunderstood something, hence my
> call
> >     for help :)
> >     >
> >     > This is what I did in my last try :
> >     >
> >     > STEP 1 :
> >     > * Create a new Nepomuk.Query.FileQuery
> >     > * Ask to look for files only via
> >     setFileMode(Nepomuk.Query.FileQuery.QueryFiles)
> >     > * Loop through my 'sources' and add them as sources via
> >     addIncludeFolder(source, True)
> >     >
> >     > STEP 2 :
> >     > * Create a ResourceTypeTerm to get only Video files
> (NFO::Video())
> >     >
> >     > STEP 3 :
> >     > * Get the list of video mimetypes that Phonon can play.
> >     > * Loop through this list, and build a ComparisonTerm for each
> >     playable mimetype :
> >     >     - The ComparisonTerm is made of the mimetype Property
> >     (NIE::mimeType()) and a LiteralTerm containing the current
> mimetype.
> >     > * Add all these ComparisonTerms in a OrTerm.
> >     >
> >     > STEP 4 :
> >     > * Build a new AndTerm.
> >     > * Add the ResourceTypeTerm built in STEP 2 to it.
> >     > * Add the OrTerm built in STEP 3 to it.
> >     >
> >     > STEP 5 :
> >     > * Add the AndTerm built in STEP 4 to my Query.
> >     > * Run the query : zero result :( (and there are some).
> >     >
> >     >
> >     > I can provide (Python) code if you want.
> >     >
> >     > What am I missing/doing wrong ? I really need to understand
> the
> >     logic behind the query system since I'm looking forward to use
> >     Nepomuk almost everywhere in my app.
> >     > So my question isn't really about that precise case, but
> rather
> >     "how do you guys build your query ?"
> >     >
> >     >
> >     > Oh, also, my strigi didn't index those files yet because of
> >     crashes (but nepomuk is running). Does it matter ?
> >     >
> >     >
> >     > Thanks a lot,
> >     >
> >     _______________________________________________
> >     Nepomuk mailing list
> >     Nepomuk at kde.org <mailto:Nepomuk at kde.org>
> >     https://mail.kde.org/mailman/listinfo/nepomuk
> > 
> > 
> > 
> > 
> > -- 
> > Vishesh Handa
> _______________________________________________
> Nepomuk mailing list
> Nepomuk at kde.org
> https://mail.kde.org/mailman/listinfo/nepomuk


More information about the Nepomuk mailing list