Hello Sergey, if your docs looks like:
PATH:'directory','tree','sements','test1' FILES:'filename1','ext1','filename2','ext2','filename3','ext3','filename4','ext4' you can search it: +PATH:test1 +FILES:jpg 2012/2/1 Sergei Ananko <asvs...@gmail.com> > Hello, > > We use Solr to search over a filesystem, so there are a lot of files and > folders indexed, name and path of each file are stored in different fields. > The task is to find folders by name AND containing at least one file of > specific type somewhere inside. For example, we search by phrase "test" and > for JPG files and have two folders: > > 1) "test1" - empty folder > 2) "test2" - contains 1 file "abcd.jpg" inside. > > Search result must only contain folder "test2", because "test1" does not > correspond to second criteria. > > SQL equivalent of such search query looks like: > > SELECT * FROM indexed_files t1 WHERE t1.name LIKE '%test%' AND (SELECT > COUNT(*) FROM indexed_files t2 WHERE t2.path LIKE CONCAT(t1.path, '%') AND > t2.name LIKE '%jpg') > 0; > > The question is: is it possible to do such search in Solr by single query? > Single query is important because we need to use Solr's paging ("start" and > "rows" parameters), so we should avoid filtering of wrong results in our > code. I've read Solr wiki about nested queries but haven't found a way to > do it. BTW, does Solr provide equivalent of "SELECT COUNT(*)" statement to > access count of found records directly in Solr query? Or such complex query > is completely impossible? > > -- > Best regards, > Asv mailto:asvs...@gmail.com -- Sincerely yours Mikhail Khludnev Lucid Certified Apache Lucene/Solr Developer Grid Dynamics <http://www.griddynamics.com> <mkhlud...@griddynamics.com>