Sergey, Try to employ http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters#solr.PatternTokenizerFactory
Regards On Wed, Feb 1, 2012 at 11:59 PM, asv - gmail <asvs...@gmail.com> wrote: > ** > > Hello, Mikhail. > > > Each index record looks like: > > > DIR:true > > PATH:/root/folder1/folder2/ > > NAME:folder3 > > SIZE:0 > > ... > > > This record represents folder /root/folder1/folder2/folder3 > > > DIR:false > > PATH:/root/folder1/folder2/folder3/ > > NAME:image.jpg > > SIZE:1234567 > > ... > > > This is a file /root/folder1/folder2/folder3/image.jpg > > > E. g. PATH is a path to parent directory, NAME is actual name of > file/folder. We do not store list of children in folder record (like in > your solution). Also, in my previous example a file of specified type may > be deeper than one level: if there are /root/folder1, /root/folder2 and > file /root/folder1/aaa/bbb/ccc/image.jpg, and I query for "folder", only > folder1 must be returned. > > > Thanks > > > > 2012/2/1, 21:33:41: > > > > > > 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 > > > > > > > > -- > > С уважением, > > asv mailto:asvs...@gmail.com <asvs...@gmail.com> > -- Sincerely yours Mikhail Khludnev Lucid Certified Apache Lucene/Solr Developer Grid Dynamics <http://www.griddynamics.com> <mkhlud...@griddynamics.com>