[Nepomuk] Help to understand how to build a query
Sebastian Trüg
trueg at kde.org
Thu Sep 22 12:28:03 UTC 2011
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
More information about the Nepomuk
mailing list