You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@jackrabbit.apache.org by Christian Stocker <ch...@liip.ch> on 2012/03/26 22:28:30 UTC

Strange Search Performance problem with OR

Hi

We have the following search query


SELECT * FROM [own:unstructured] AS data WHERE data.guid = 'J7B1X'
		AND (ISDESCENDANTNODE(data, '/article')
		OR ISDESCENDANTNODE(data, '/import/article')
		)
		ORDER BY firstImportDate DESC


This query can take quite some time (up to 3 seconds, but it gets more
and more hte more data we have). In /article there's potentially a lot
of nodes, in /import/article usually almost nil.


If we now separate the query into 2:

SELECT * FROM [own:unstructured] AS data WHERE data.guid = 'J7B1X'
		AND ISDESCENDANTNODE(data, '/article')
		ORDER BY firstImportDate DESC

and

SELECT * FROM [own:unstructured] AS data WHERE data.guid = 'J7B1X'
		AND ISDESCENDANTNODE(data, '/import/article')
		ORDER BY firstImportDate DESC

Both queries take approx. 10ms (and return 0 or 1 resultset, more is not
possible). So quite fast.

Can anyone explain to me, why that is and how we could rewrite the query
to make it fast with a single one as well?

Thanks

chregu

Re: Strange Search Performance problem with OR

Posted by Alex Parvulescu <al...@gmail.com>.
Hi,

I've created JCR-3280 [0]. It would be interesting if you could take it for
a spin ;)

best,
alex

[0] https://issues.apache.org/jira/browse/JCR-3280


On Tue, Mar 27, 2012 at 5:49 PM, Alex Parvulescu
<al...@gmail.com>wrote:

> hi,
>
> > unfortunately the debug is not that descriptive (from my POV :))
>
> yes, well the idea is to make it more user friendly :)
> I added it with joins in mind so it doesn't say much (ahem, anything)
> about how normal queries break down to lucene queries.
>
> About the join query: it appears that in the case of the 0 hits, the query
> engine is terribly inefficient, it fetches the entire subset of nodes:
>
> > SQL2 JOIN LEFT SIDE took 8 ms. fetched 0 rows.
> > SQL2 JOIN RIGHT SIDE took 845 ms. fetched 13055 rows.
> ...so it fetches 130k nodes and doesn't keep any of them.
>
> whereas when it has something to work with it is able to generate some
> proper conditions
> > SQL2 JOIN LEFT SIDE took 18 ms. fetched 145 rows.
> > SQL2 JOIN RIGHT SIDE took 67 ms. fetched 0 rows.
>
> There is room for improvement here :)
> I'm thinking if the left side of the join is empty, we can skip looking
> for the right side entirely.
> I'll create an issue to track this improvement.
>
> good catch!
>
> As for the other example, we can look into it tomorrow :)
>
>
> best,
> alex
>
>
> On Tue, Mar 27, 2012 at 3:24 PM, Christian Stocker <
> christian.stocker@liip.ch> wrote:
>
>> Hi Alex
>>
>> unfortunately the debug is not that descriptive (from my POV :))
>>
>> For the query with the OR
>>
>>
>> 2012-03-27 15:14:44.086 DEBUG [606360852@qtp-1418257117-3]
>> QueryEngine.java:465   SQL2 SELECT took 6642 ms. selector:
>> [own:unstructured] AS data, columns: [data.jcr:primaryType], constraint:
>> (data.guid = 'J7B1X') AND ((ISDESCENDANTNODE(data, [/article])) OR
>> (ISDESCENDANTNODE(data, [/import/article]))), offset 0, limit 5
>> 2012-03-27 15:14:44.087 DEBUG [606360852@qtp-1418257117-3]
>> QueryEngine.java:480   SQL2 SORT took 0 ms.
>> 2012-03-27 15:14:44.087 DEBUG [606360852@qtp-1418257117-3]
>> QueryEngine.java:117 SQL2 QUERY execute took 6643 ms. native sort is
>> false.
>>
>>
>> For the query without the or
>>
>> 2012-03-27 15:15:44.774 DEBUG [606360852@qtp-1418257117-3]
>> QueryEngine.java:465   SQL2 SELECT took 5 ms. selector:
>> [own:unstructured] AS data, columns: [data.jcr:primaryType], constraint:
>> (data.guid = 'J7B1X') AND (ISDESCENDANTNODE(data, [/article])), offset
>> 0, limit 5
>> 2012-03-27 15:15:44.775 DEBUG [606360852@qtp-1418257117-3]
>> QueryEngine.java:480   SQL2 SORT took 0 ms.
>> 2012-03-27 15:15:44.775 DEBUG [606360852@qtp-1418257117-3]
>> QueryEngine.java:117 SQL2 QUERY execute took 6 ms. native sort is false.
>>
>>
>> For the later with no results:
>> (or as file https://gist.github.com/761084c44997d6c7ad11)
>>
>> 2012-03-27 15:19:53.406 DEBUG [606360852@qtp-1418257117-3]
>> QueryEngine.java:393   SQL2 JOIN analysis:
>>  SQL2 JOIN inner split ->
>>  +
>>      SQL2 JOIN source: [own:unstructured] AS data LEFT OUTER JOIN
>> [own:unstructured] AS referring ON referring.reference = data.[jcr:uuid]
>>      SQL2 JOIN left constraint:  (((data.[phpcr:class] =
>> 'Own\ApiBundle\Document\Article') AND (data.publication = 'own')) AND
>> ((CONTAINS(data.categories, 'KURZ')) AND (data.departmentSlugs =
>> 'front'))) AND (((NOT (data.permissionPath like 'owns/%')) AND
>> (data.title IS NOT NULL)) AND ((data.title <> '') AND ((data.teaser IS
>> NOT NULL) AND (data.teaser <> ''))))
>>      SQL2 JOIN right constraint: (referring.reference IS NOT NULL) AND
>> (ISDESCENDANTNODE(referring, [/article/2012/03/26]))
>>  +
>>      SQL2 JOIN source: [own:unstructured] AS data LEFT OUTER JOIN
>> [own:unstructured] AS referring ON referring.reference = data.[jcr:uuid]
>>      SQL2 JOIN left constraint:  (((data.[phpcr:class] =
>> 'Own\ApiBundle\Document\Article') AND (data.publication = 'own')) AND
>> ((CONTAINS(data.categories, 'KURZ')) AND ((data.departmentSlugs =
>> 'front') AND (NOT (data.permissionPath like 'owns/%'))))) AND
>> (((data.title IS NOT NULL) AND (data.title <> '')) AND ((data.teaser IS
>> NOT NULL) AND ((data.teaser <> '') AND (ISDESCENDANTNODE(data,
>> [/article/2012/03/26])))))
>>      SQL2 JOIN right constraint: null
>> 2012-03-27 15:19:53.407 DEBUG [606360852@qtp-1418257117-3]
>> QueryEngine.java:182    SQL2 JOIN execute: there are multiple inner
>> splits.
>> 2012-03-27 15:19:53.414 DEBUG [606360852@qtp-1418257117-3]
>> QueryEngine.java:465           SQL2 SELECT took 7 ms. selector:
>> [own:unstructured] AS data, columns: [data.jcr:primaryType], constraint:
>> (((data.[phpcr:class] = 'Own\ApiBundle\Document\Article') AND
>> (data.publication = 'own')) AND ((CONTAINS(data.categories, 'KURZ')) AND
>> (data.departmentSlugs = 'front'))) AND (((NOT (data.permissionPath like
>> 'owns/%')) AND (data.title IS NOT NULL)) AND ((data.title <> '') AND
>> ((data.teaser IS NOT NULL) AND (data.teaser <> '')))), offset 0, limit -1
>> 2012-03-27 15:19:53.414 DEBUG [606360852@qtp-1418257117-3]
>> QueryEngine.java:480           SQL2 SORT took 0 ms.
>> 2012-03-27 15:19:53.415 DEBUG [606360852@qtp-1418257117-3]
>> QueryEngine.java:222       SQL2 JOIN LEFT SIDE took 8 ms. fetched 0 rows.
>> 2012-03-27 15:19:53.544 DEBUG [606360852@qtp-1418257117-3]
>> QueryEngine.java:465           SQL2 SELECT took 129 ms. selector:
>> [own:unstructured] AS referring, columns: [referring.jcr:primaryType],
>> constraint: null, offset 0, limit -1
>> 2012-03-27 15:19:53.544 DEBUG [606360852@qtp-1418257117-3]
>> QueryEngine.java:480           SQL2 SORT took 0 ms.
>> 2012-03-27 15:19:54.259 DEBUG [606360852@qtp-1418257117-3]
>> QueryEngine.java:465           SQL2 SELECT took 6 ms. selector:
>> [own:unstructured] AS referring, columns: [referring.jcr:primaryType],
>> constraint: (referring.reference IS NOT NULL) AND
>> (ISDESCENDANTNODE(referring, [/article/2012/03/26])), offset 0, limit -1
>> 2012-03-27 15:19:54.260 DEBUG [606360852@qtp-1418257117-3]
>> QueryEngine.java:480           SQL2 SORT took 0 ms.
>> 2012-03-27 15:19:54.260 DEBUG [606360852@qtp-1418257117-3]
>> QueryEngine.java:261       SQL2 JOIN RIGHT SIDE took 845 ms. fetched
>> 13055 rows.
>> 2012-03-27 15:19:54.340 DEBUG [606360852@qtp-1418257117-3]
>> QueryEngine.java:197    SQL2 JOIN executed first branch, took 933 ms.
>> 2012-03-27 15:19:54.346 DEBUG [606360852@qtp-1418257117-3]
>> QueryEngine.java:465           SQL2 SELECT took 6 ms. selector:
>> [own:unstructured] AS data, columns: [data.jcr:primaryType], constraint:
>> (((data.[phpcr:class] = 'Own\ApiBundle\Document\Article') AND
>> (data.publication = 'own')) AND ((CONTAINS(data.categories, 'KURZ')) AND
>> ((data.departmentSlugs = 'front') AND (NOT (data.permissionPath like
>> 'owns/%'))))) AND (((data.title IS NOT NULL) AND (data.title <> '')) AND
>> ((data.teaser IS NOT NULL) AND ((data.teaser <> '') AND
>> (ISDESCENDANTNODE(data, [/article/2012/03/26]))))), offset 0, limit -1
>> 2012-03-27 15:19:54.347 DEBUG [606360852@qtp-1418257117-3]
>> QueryEngine.java:480           SQL2 SORT took 0 ms.
>> 2012-03-27 15:19:54.347 DEBUG [606360852@qtp-1418257117-3]
>> QueryEngine.java:222       SQL2 JOIN LEFT SIDE took 7 ms. fetched 0 rows.
>> 2012-03-27 15:19:54.412 DEBUG [606360852@qtp-1418257117-3]
>> QueryEngine.java:465           SQL2 SELECT took 64 ms. selector:
>> [own:unstructured] AS referring, columns: [referring.jcr:primaryType],
>> constraint: null, offset 0, limit -1
>> 2012-03-27 15:19:54.412 DEBUG [606360852@qtp-1418257117-3]
>> QueryEngine.java:480           SQL2 SORT took 0 ms.
>> 2012-03-27 15:19:55.172 DEBUG [606360852@qtp-1418257117-3]
>> QueryEngine.java:261       SQL2 JOIN RIGHT SIDE took 825 ms. fetched
>> 13055 rows.
>> 2012-03-27 15:19:55.259 DEBUG [606360852@qtp-1418257117-3]
>> QueryEngine.java:211    SQL2 JOIN executed second branch, took 919 ms.
>> 2012-03-27 15:19:55.259 DEBUG [606360852@qtp-1418257117-3]
>> QueryEngine.java:168     SQL2 SORT took 0 ms.
>> 2012-03-27 15:19:55.259 DEBUG [606360852@qtp-1418257117-3]
>> QueryEngine.java:117 SQL2 QUERY execute took 1853 ms. native sort is
>> false.
>>
>>
>> with results:
>>
>> (as file https://gist.github.com/c52b2d87558f90a491cc )
>>
>> 2012-03-27 15:22:17.114 DEBUG [606360852@qtp-1418257117-3]
>> QueryEngine.java:393   SQL2 JOIN analysis:
>>  SQL2 JOIN inner split ->
>>  +
>>      SQL2 JOIN source: [own:unstructured] AS data LEFT OUTER JOIN
>> [own:unstructured] AS referring ON referring.reference = data.[jcr:uuid]
>>      SQL2 JOIN left constraint:  (((data.[phpcr:class] =
>> 'Own\ApiBundle\Document\Article') AND (data.publication = 'own')) AND
>> ((CONTAINS(data.categories, 'KURZ')) AND (data.departmentSlugs =
>> 'international'))) AND (((NOT (data.permissionPath like 'owns/%')) AND
>> (data.title IS NOT NULL)) AND ((data.title <> '') AND ((data.teaser IS
>> NOT NULL) AND (data.teaser <> ''))))
>>      SQL2 JOIN right constraint: (referring.reference IS NOT NULL) AND
>> (ISDESCENDANTNODE(referring, [/article/2012/03/26]))
>>  +
>>      SQL2 JOIN source: [own:unstructured] AS data LEFT OUTER JOIN
>> [own:unstructured] AS referring ON referring.reference = data.[jcr:uuid]
>>      SQL2 JOIN left constraint:  (((data.[phpcr:class] =
>> 'Own\ApiBundle\Document\Article') AND (data.publication = 'own')) AND
>> ((CONTAINS(data.categories, 'KURZ')) AND ((data.departmentSlugs =
>> 'international') AND (NOT (data.permissionPath like 'owns/%'))))) AND
>> (((data.title IS NOT NULL) AND (data.title <> '')) AND ((data.teaser IS
>> NOT NULL) AND ((data.teaser <> '') AND (ISDESCENDANTNODE(data,
>> [/article/2012/03/26])))))
>>      SQL2 JOIN right constraint: null
>> 2012-03-27 15:22:17.115 DEBUG [606360852@qtp-1418257117-3]
>> QueryEngine.java:182    SQL2 JOIN execute: there are multiple inner
>> splits.
>> 2012-03-27 15:22:17.128 DEBUG [606360852@qtp-1418257117-3]
>> QueryEngine.java:465           SQL2 SELECT took 13 ms. selector:
>> [own:unstructured] AS data, columns: [data.jcr:primaryType], constraint:
>> (((data.[phpcr:class] = 'Own\ApiBundle\Document\Article') AND
>> (data.publication = 'own')) AND ((CONTAINS(data.categories, 'KURZ')) AND
>> (data.departmentSlugs = 'international'))) AND (((NOT
>> (data.permissionPath like 'owns/%')) AND (data.title IS NOT NULL)) AND
>> ((data.title <> '') AND ((data.teaser IS NOT NULL) AND (data.teaser <>
>> '')))), offset 0, limit -1
>> 2012-03-27 15:22:17.128 DEBUG [606360852@qtp-1418257117-3]
>> QueryEngine.java:480           SQL2 SORT took 0 ms.
>> 2012-03-27 15:22:17.134 DEBUG [606360852@qtp-1418257117-3]
>> QueryEngine.java:222       SQL2 JOIN LEFT SIDE took 18 ms. fetched 145
>> rows.
>> 2012-03-27 15:22:17.183 DEBUG [606360852@qtp-1418257117-3]
>> QueryEngine.java:465           SQL2 SELECT took 45 ms. selector:
>> [own:unstructured] AS referring, columns: [referring.jcr:primaryType],
>> constraint: (((((((referring.reference =
>> 'dabef043-d963-4c25-8b1b-d8db8335fc14') OR (referring.reference =
>> '360178d6-4d06-480e-99f5-9936e3d0285e')) OR ((referring.reference =
>> '64a72ae9-a5c0-45cb-85e1-f7cb403f851d') OR (referring.reference =
>> 'fb13c508-3751-43fd-b2b0-74bb52688f6a'))) OR (((referring.reference =
>> 'f3cb740d-0503-4cf7-b725-6ac2b071e627') OR (referring.reference =
>> 'e8896428-0a90-4f39-815e-2034f9821fed')) OR ((referring.reference =
>> '363032f7-4576-492c-9778-bad13de1b83e') OR ((referring.reference =
>> '9d3b1524-e1a9-4656-9efb-1734ae20d8c1') OR (referring.reference =
>> 'a3664b9c-feba-4b50-80c9-b15de8e00f0d'))))) OR ((((referring.reference =
>> '5626d03a-7056-4369-91c2-95674976954f') OR (referring.reference =
>> 'b0a8165c-647a-427b-baeb-6bb8095b2e25')) OR ((referring.reference =
>> '416b72c7-3d45-46ed-81f4-bb5665765e1f') OR (referring.reference =
>> 'e543b2fd-9606-4676-bea4-80dc6c0ecfdc'))) OR (((referring.reference =
>> '1b46f1bf-2121-492d-8886-b1271496a4e4') OR (referring.reference =
>> 'a71a5af1-41d0-4a9b-9590-7355bfb6c8fe')) OR ((referring.reference =
>> 'fc4448d5-6270-40d4-9a7e-ffaa32bbf0e4') OR ((referring.reference =
>> 'f6c49452-3a55-4bd0-929f-590652fbca62') OR (referring.reference =
>> '03fbc4a5-6fa1-442f-98c3-21e2c1626eab')))))) OR (((((referring.reference
>> = '11e8f268-7137-4c12-8a2c-d665fc9bc8c1') OR (referring.reference =
>> 'e6a7fb91-1a47-4c96-ab2b-d99e17fe1058')) OR ((referring.reference =
>> '3f590d84-3fdf-46c8-ba24-edff3c18d380') OR (referring.reference =
>> 'dd390426-71b9-442b-b21d-f781d6f92108'))) OR (((referring.reference =
>> '0553667e-8fd8-475d-9c37-aa32059d6ca3') OR (referring.reference =
>> '85a88a31-354b-484c-8cd8-49ff964b3a31')) OR ((referring.reference =
>> '5796b1a0-9a48-4684-bdcd-ca81a4a668b2') OR ((referring.reference =
>> '8c1556f5-a1ac-48b0-b378-9d49df208a06') OR (referring.reference =
>> 'cf3415c4-0eab-44d5-84f3-6cb81a95275f'))))) OR ((((referring.reference =
>> '52ae2f47-9e5f-4e6b-8f8a-b02db35ef4fb') OR (referring.reference =
>> '793a47e6-4903-46c5-9a4b-93942ac052b6')) OR ((referring.reference =
>> 'd1d18eab-749e-40aa-895a-669b7554f6ec') OR (referring.reference =
>> '14361658-a4d1-43af-a4b8-10f0cfdab623'))) OR (((referring.reference =
>> '3307515f-0943-481a-b87e-7c20f734536f') OR (referring.reference =
>> '1c72c6c1-eb29-4ace-9fde-e1372ee21a6a')) OR ((referring.reference =
>> '35c502cb-9456-4a1f-91ca-18a8057c0c72') OR ((referring.reference =
>> 'f3d7dd59-3a27-4a1e-b991-a28452695ed0') OR (referring.reference =
>> '5953a950-6def-4832-9db2-4641ede368ef'))))))) OR
>> ((((((referring.reference = '9c86d524-3ff2-4c10-95a2-449fb751711a') OR
>> (referring.reference = '22cf7cca-90cb-4f3f-b0ac-338f8da9c813')) OR
>> ((referring.reference = '302595c5-fce5-42ba-ba88-466a1d234458') OR
>> (referring.reference = 'a7fba88b-1f16-4ac2-91b5-3dfc2084ee7c'))) OR
>> (((referring.reference = 'd5b4f2e2-3232-402d-950e-88a27cc5944d') OR
>> (referring.reference = 'f5123108-19af-48ee-9922-90f9830486fc')) OR
>> ((referring.reference = '221554f2-a8b8-47c6-8466-71d79d3bd763') OR
>> ((referring.reference = '0ff48319-b415-43c6-aafa-8b56f8b556d9') OR
>> (referring.reference = 'c2839883-7fc0-439e-aba5-309cf95f0117'))))) OR
>> ((((referring.reference = 'c3c9ed93-a5c7-4a40-9f19-90595554da41') OR
>> (referring.reference = '356909e9-25f7-46c3-9a95-dcedfc583fe7')) OR
>> ((referring.reference = '770466bd-2917-433d-8106-2a00d4449a02') OR
>> (referring.reference = 'f8ebf6bb-a1b2-4334-af23-634e962cc2ca'))) OR
>> (((referring.reference = '75086103-ed01-4711-acb1-76f6f4305a28') OR
>> (referring.reference = '602f4c8d-99b1-45b7-9096-bc047097f840')) OR
>> ((referring.reference = 'd97de87a-a5c6-4a25-8c45-550d6bcd5cf2') OR
>> ((referring.reference = 'f1b31a93-bec1-4d55-bcd1-b5bbfdeffc8b') OR
>> (referring.reference = 'f7104878-40b5-4afb-90b0-64bdcbc39258')))))) OR
>> (((((referring.reference = '4509d2ed-f95f-45f3-adb6-3c60b28721a8') OR
>> (referring.reference = 'ea23a845-a744-41d3-8ccf-e18592f20c2c')) OR
>> ((referring.reference = '7a0837b6-989b-49f9-8d1b-7ba1bee66934') OR
>> (referring.reference = '705288d8-1ffd-4d90-b066-a503e046d009'))) OR
>> (((referring.reference = '8e693e6c-c29f-44aa-a734-0b94f4035995') OR
>> (referring.reference = 'e126b2f3-23d9-488e-a0b9-6c234b3fad71')) OR
>> ((referring.reference = '2c3e7ca8-92fa-4b0a-875d-1e3a9b6cc9ff') OR
>> ((referring.reference = '92eca2e3-cff0-4ec6-952a-bac3fa72befb') OR
>> (referring.reference = 'ceeb5abf-a47c-4a2d-b40b-246a5c979d05'))))) OR
>> ((((referring.reference = 'db2fc503-2685-437b-84ec-360bcdd25617') OR
>> (referring.reference = 'fb64a059-12a4-4204-86bc-3a484da14962')) OR
>> ((referring.reference = '8219a54b-25ed-4531-897b-1b7d98c86236') OR
>> (referring.reference = '66272d61-d4e9-48d1-88c4-853d8337cc37'))) OR
>> (((referring.reference = '486bd99d-e20d-413e-b7a5-65bb8c0a70f2') OR
>> (referring.reference = '7c75e0cc-27d9-4979-8c10-04bcf68786a4')) OR
>> ((referring.reference = 'b3ff705b-e5b9-4d96-9263-b8e5f7a7c9e4') OR
>> ((referring.reference = 'b509f992-a8d2-4249-906b-f0f589781f12') OR
>> (referring.reference = '422c0683-e785-43a5-8128-1de3f08348aa')))))))) OR
>> (((((((referring.reference = '970f35bd-e8d3-49fc-8e63-264bb395fba7') OR
>> (referring.reference = '1dcc2ad7-c0e9-48f8-83c4-e31c2bf272df')) OR
>> ((referring.reference = '43ae876f-1307-4c4e-8d2b-8ebe781f775b') OR
>> (referring.reference = '4ac9e304-15e3-4b19-8406-51a39bfdcc6a'))) OR
>> (((referring.reference = 'bf0c9f9d-43de-4aa3-9177-bd6ad6dabf0d') OR
>> (referring.reference = '4627e7bd-175d-4680-8b18-9856145534be')) OR
>> ((referring.reference = 'd3e16650-29f2-4681-9fb3-2be83ae7adb2') OR
>> ((referring.reference = 'a6859cb7-3f9f-49f5-9d6f-47246c484eec') OR
>> (referring.reference = '2974618a-bbb6-4bae-a0cb-e3e82babee05'))))) OR
>> ((((referring.reference = 'ab4cc140-2c48-432e-986b-af9536c3809d') OR
>> (referring.reference = '543987d1-c6fa-47e2-86db-b0926323edd0')) OR
>> ((referring.reference = '7f9149d2-bdc7-4394-9efe-aa3cd1ac201c') OR
>> (referring.reference = 'd5fcf8f1-a06d-42ee-a9ff-7b778457d56c'))) OR
>> (((referring.reference = 'f9ff49ca-dc3a-4820-a421-2d41cd4b5083') OR
>> (referring.reference = 'a18ac7c1-e100-444a-8d50-1631ac900a76')) OR
>> ((referring.reference = '417bf61c-696e-4a18-8792-1353ebd3800e') OR
>> ((referring.reference = '7ce8a1d4-62cd-4e66-bcf0-f6fd3276c767') OR
>> (referring.reference = '3be4cf2c-00a5-4f19-a846-925c02c4e6a2')))))) OR
>> (((((referring.reference = '70afe4aa-0ff9-4336-a030-f6d17b631865') OR
>> (referring.reference = '48d84382-b251-484d-a061-b2f3acc940f1')) OR
>> ((referring.reference = 'c2d2c2fd-4a37-4542-9cf2-0ab2ee85f56c') OR
>> (referring.reference = 'dc1972a8-30fa-4194-8640-bfc1d15b3226'))) OR
>> (((referring.reference = '10f1b4c7-2fbd-4d37-8765-324c22c1eb78') OR
>> (referring.reference = 'f5878662-8b75-4b56-9bf2-ddad05863b6b')) OR
>> ((referring.reference = 'dde13542-d444-445c-a260-735f44e1c5a5') OR
>> ((referring.reference = 'ee668110-7983-4f78-85bf-83396544a995') OR
>> (referring.reference = 'd5fddf5b-75c4-43a1-9f66-6b2bd1642b1d'))))) OR
>> ((((referring.reference = 'a7e08817-4da5-450a-8883-642358cbdee6') OR
>> (referring.reference = '7247e111-1096-43d2-a842-12194199f73f')) OR
>> ((referring.reference = 'ef8e1445-6995-4955-852f-7e8171f69dd5') OR
>> (referring.reference = 'e56b971d-5217-4677-8cd3-d9aed2e27868'))) OR
>> (((referring.reference = '4b167857-8f64-443d-96d5-d4b0f9230f8f') OR
>> (referring.reference = '56474a02-ef78-48da-bbda-a3976b766e82')) OR
>> ((referring.reference = 'dd45ab8c-aaee-48c0-88f2-1ebbc07d0ef4') OR
>> ((referring.reference = 'b5c6e3be-9a3e-4225-88a9-db73279f3bea') OR
>> (referring.reference = '759204cc-95e0-47c7-a353-0aa07f2925bc'))))))) OR
>> ((((((referring.reference = 'fad5544c-25cd-4d40-9780-a640cff4c34a') OR
>> (referring.reference = 'e805d4b0-eef1-4902-a57c-714eacf98aec')) OR
>> ((referring.reference = '32e12819-f842-4218-a081-73268e0248af') OR
>> (referring.reference = 'dd926ef4-66de-4268-b7a7-9dd22dc7822e'))) OR
>> (((referring.reference = 'fb1f114e-5d41-419f-b1d6-469b52584d8c') OR
>> (referring.reference = 'f0f81bf2-2936-4ad0-bd06-b8f77c08082b')) OR
>> ((referring.reference = 'a8e465b0-6ac3-4c71-9c05-0d0db5d4ed95') OR
>> ((referring.reference = '07ad03ad-22b2-4516-9ceb-4828799fa7d0') OR
>> (referring.reference = '85c7119b-05ff-462c-953e-8f7d204fbcc7'))))) OR
>> ((((referring.reference = '7a9a7382-3f09-4b16-a7f7-8891936f89d3') OR
>> (referring.reference = '494e2684-dd23-4ad0-b877-45072d5dabb0')) OR
>> ((referring.reference = 'f75fbcb6-756d-4289-b552-05e11ff724e8') OR
>> (referring.reference = '5f584bd6-178b-47ef-8a95-aef199221b70'))) OR
>> (((referring.reference = '30a56660-eadc-43db-b689-69390dacadf3') OR
>> (referring.reference = 'c5ef124c-955d-473a-9592-924ebeaf4cc0')) OR
>> ((referring.reference = 'aedf8dee-44f5-44aa-8b94-0f0811487c24') OR
>> ((referring.reference = 'f07e2d32-ced6-418c-80cd-473cdae38b9f') OR
>> (referring.reference = '7def13bb-e269-48dd-aebe-874fd1504776')))))) OR
>> (((((referring.reference = '73906c23-27fd-424d-84b5-677ee5528e7a') OR
>> (referring.reference = '7fb03b21-3dd1-42bc-8d66-81c5c8df4ba6')) OR
>> ((referring.reference = 'dc129f72-7fae-45fe-89cf-c5d7754a23a8') OR
>> (referring.reference = 'fa8c042f-055c-4453-942f-e6cd489fa0e4'))) OR
>> (((referring.reference = '04dea2e3-8a18-4ab0-9d38-a506d53be0cf') OR
>> (referring.reference = '18eb65d7-2e8b-4935-bb1b-4b7c493f9dea')) OR
>> ((referring.reference = '4c7171cb-caae-4747-9e44-0f01e8300b01') OR
>> ((referring.reference = '4db5ac73-2277-4be2-9fc0-f407d0aa4a90') OR
>> (referring.reference = '764811a0-5c44-4c9c-8162-5be67a046771'))))) OR
>> ((((referring.reference = '400f0efa-c1d2-416b-82f2-e5208e1152b1') OR
>> (referring.reference = '1fa1d92a-4af1-4db6-8bd7-ad38b762ae72')) OR
>> ((referring.reference = '6b3a9b45-040f-49a1-ba64-e13d5433b74e') OR
>> ((referring.reference = '9be29c73-8164-4be0-8b5f-34e889718a89') OR
>> (referring.reference = '9f72cac4-3fb6-456b-9a8d-77a391d48cbb')))) OR
>> (((referring.reference = '3c6d886e-9fb3-4080-b633-c1e1120b9da1') OR
>> (referring.reference = 'e2166375-5bf1-432e-a348-6cf40d97c6ae')) OR
>> ((referring.reference = '9d458e27-fbf3-4595-8739-61ec17d428c5') OR
>> ((referring.reference = '3e8da13a-e971-4720-be22-f6cb859b1b5b') OR
>> (referring.reference = '36b33131-03a7-46ed-987c-2d03c20cfe92')))))))),
>> offset 0, limit -1
>> 2012-03-27 15:22:17.184 DEBUG [606360852@qtp-1418257117-3]
>> QueryEngine.java:480           SQL2 SORT took 0 ms.
>> 2012-03-27 15:22:17.200 DEBUG [606360852@qtp-1418257117-3]
>> QueryEngine.java:465           SQL2 SELECT took 14 ms. selector:
>> [own:unstructured] AS referring, columns: [referring.jcr:primaryType],
>> constraint: ((((((((referring.reference =
>> 'dabef043-d963-4c25-8b1b-d8db8335fc14') OR (referring.reference =
>> '360178d6-4d06-480e-99f5-9936e3d0285e')) OR ((referring.reference =
>> '64a72ae9-a5c0-45cb-85e1-f7cb403f851d') OR (referring.reference =
>> 'fb13c508-3751-43fd-b2b0-74bb52688f6a'))) OR (((referring.reference =
>> 'f3cb740d-0503-4cf7-b725-6ac2b071e627') OR (referring.reference =
>> 'e8896428-0a90-4f39-815e-2034f9821fed')) OR ((referring.reference =
>> '363032f7-4576-492c-9778-bad13de1b83e') OR ((referring.reference =
>> '9d3b1524-e1a9-4656-9efb-1734ae20d8c1') OR (referring.reference =
>> 'a3664b9c-feba-4b50-80c9-b15de8e00f0d'))))) OR ((((referring.reference =
>> '5626d03a-7056-4369-91c2-95674976954f') OR (referring.reference =
>> 'b0a8165c-647a-427b-baeb-6bb8095b2e25')) OR ((referring.reference =
>> '416b72c7-3d45-46ed-81f4-bb5665765e1f') OR (referring.reference =
>> 'e543b2fd-9606-4676-bea4-80dc6c0ecfdc'))) OR (((referring.reference =
>> '1b46f1bf-2121-492d-8886-b1271496a4e4') OR (referring.reference =
>> 'a71a5af1-41d0-4a9b-9590-7355bfb6c8fe')) OR ((referring.reference =
>> 'fc4448d5-6270-40d4-9a7e-ffaa32bbf0e4') OR ((referring.reference =
>> 'f6c49452-3a55-4bd0-929f-590652fbca62') OR (referring.reference =
>> '03fbc4a5-6fa1-442f-98c3-21e2c1626eab')))))) OR (((((referring.reference
>> = '11e8f268-7137-4c12-8a2c-d665fc9bc8c1') OR (referring.reference =
>> 'e6a7fb91-1a47-4c96-ab2b-d99e17fe1058')) OR ((referring.reference =
>> '3f590d84-3fdf-46c8-ba24-edff3c18d380') OR (referring.reference =
>> 'dd390426-71b9-442b-b21d-f781d6f92108'))) OR (((referring.reference =
>> '0553667e-8fd8-475d-9c37-aa32059d6ca3') OR (referring.reference =
>> '85a88a31-354b-484c-8cd8-49ff964b3a31')) OR ((referring.reference =
>> '5796b1a0-9a48-4684-bdcd-ca81a4a668b2') OR ((referring.reference =
>> '8c1556f5-a1ac-48b0-b378-9d49df208a06') OR (referring.reference =
>> 'cf3415c4-0eab-44d5-84f3-6cb81a95275f'))))) OR ((((referring.reference =
>> '52ae2f47-9e5f-4e6b-8f8a-b02db35ef4fb') OR (referring.reference =
>> '793a47e6-4903-46c5-9a4b-93942ac052b6')) OR ((referring.reference =
>> 'd1d18eab-749e-40aa-895a-669b7554f6ec') OR (referring.reference =
>> '14361658-a4d1-43af-a4b8-10f0cfdab623'))) OR (((referring.reference =
>> '3307515f-0943-481a-b87e-7c20f734536f') OR (referring.reference =
>> '1c72c6c1-eb29-4ace-9fde-e1372ee21a6a')) OR ((referring.reference =
>> '35c502cb-9456-4a1f-91ca-18a8057c0c72') OR ((referring.reference =
>> 'f3d7dd59-3a27-4a1e-b991-a28452695ed0') OR (referring.reference =
>> '5953a950-6def-4832-9db2-4641ede368ef'))))))) OR
>> ((((((referring.reference = '9c86d524-3ff2-4c10-95a2-449fb751711a') OR
>> (referring.reference = '22cf7cca-90cb-4f3f-b0ac-338f8da9c813')) OR
>> ((referring.reference = '302595c5-fce5-42ba-ba88-466a1d234458') OR
>> (referring.reference = 'a7fba88b-1f16-4ac2-91b5-3dfc2084ee7c'))) OR
>> (((referring.reference = 'd5b4f2e2-3232-402d-950e-88a27cc5944d') OR
>> (referring.reference = 'f5123108-19af-48ee-9922-90f9830486fc')) OR
>> ((referring.reference = '221554f2-a8b8-47c6-8466-71d79d3bd763') OR
>> ((referring.reference = '0ff48319-b415-43c6-aafa-8b56f8b556d9') OR
>> (referring.reference = 'c2839883-7fc0-439e-aba5-309cf95f0117'))))) OR
>> ((((referring.reference = 'c3c9ed93-a5c7-4a40-9f19-90595554da41') OR
>> (referring.reference = '356909e9-25f7-46c3-9a95-dcedfc583fe7')) OR
>> ((referring.reference = '770466bd-2917-433d-8106-2a00d4449a02') OR
>> (referring.reference = 'f8ebf6bb-a1b2-4334-af23-634e962cc2ca'))) OR
>> (((referring.reference = '75086103-ed01-4711-acb1-76f6f4305a28') OR
>> (referring.reference = '602f4c8d-99b1-45b7-9096-bc047097f840')) OR
>> ((referring.reference = 'd97de87a-a5c6-4a25-8c45-550d6bcd5cf2') OR
>> ((referring.reference = 'f1b31a93-bec1-4d55-bcd1-b5bbfdeffc8b') OR
>> (referring.reference = 'f7104878-40b5-4afb-90b0-64bdcbc39258')))))) OR
>> (((((referring.reference = '4509d2ed-f95f-45f3-adb6-3c60b28721a8') OR
>> (referring.reference = 'ea23a845-a744-41d3-8ccf-e18592f20c2c')) OR
>> ((referring.reference = '7a0837b6-989b-49f9-8d1b-7ba1bee66934') OR
>> (referring.reference = '705288d8-1ffd-4d90-b066-a503e046d009'))) OR
>> (((referring.reference = '8e693e6c-c29f-44aa-a734-0b94f4035995') OR
>> (referring.reference = 'e126b2f3-23d9-488e-a0b9-6c234b3fad71')) OR
>> ((referring.reference = '2c3e7ca8-92fa-4b0a-875d-1e3a9b6cc9ff') OR
>> ((referring.reference = '92eca2e3-cff0-4ec6-952a-bac3fa72befb') OR
>> (referring.reference = 'ceeb5abf-a47c-4a2d-b40b-246a5c979d05'))))) OR
>> ((((referring.reference = 'db2fc503-2685-437b-84ec-360bcdd25617') OR
>> (referring.reference = 'fb64a059-12a4-4204-86bc-3a484da14962')) OR
>> ((referring.reference = '8219a54b-25ed-4531-897b-1b7d98c86236') OR
>> (referring.reference = '66272d61-d4e9-48d1-88c4-853d8337cc37'))) OR
>> (((referring.reference = '486bd99d-e20d-413e-b7a5-65bb8c0a70f2') OR
>> (referring.reference = '7c75e0cc-27d9-4979-8c10-04bcf68786a4')) OR
>> ((referring.reference = 'b3ff705b-e5b9-4d96-9263-b8e5f7a7c9e4') OR
>> ((referring.reference = 'b509f992-a8d2-4249-906b-f0f589781f12') OR
>> (referring.reference = '422c0683-e785-43a5-8128-1de3f08348aa')))))))) OR
>> (((((((referring.reference = '970f35bd-e8d3-49fc-8e63-264bb395fba7') OR
>> (referring.reference = '1dcc2ad7-c0e9-48f8-83c4-e31c2bf272df')) OR
>> ((referring.reference = '43ae876f-1307-4c4e-8d2b-8ebe781f775b') OR
>> (referring.reference = '4ac9e304-15e3-4b19-8406-51a39bfdcc6a'))) OR
>> (((referring.reference = 'bf0c9f9d-43de-4aa3-9177-bd6ad6dabf0d') OR
>> (referring.reference = '4627e7bd-175d-4680-8b18-9856145534be')) OR
>> ((referring.reference = 'd3e16650-29f2-4681-9fb3-2be83ae7adb2') OR
>> ((referring.reference = 'a6859cb7-3f9f-49f5-9d6f-47246c484eec') OR
>> (referring.reference = '2974618a-bbb6-4bae-a0cb-e3e82babee05'))))) OR
>> ((((referring.reference = 'ab4cc140-2c48-432e-986b-af9536c3809d') OR
>> (referring.reference = '543987d1-c6fa-47e2-86db-b0926323edd0')) OR
>> ((referring.reference = '7f9149d2-bdc7-4394-9efe-aa3cd1ac201c') OR
>> (referring.reference = 'd5fcf8f1-a06d-42ee-a9ff-7b778457d56c'))) OR
>> (((referring.reference = 'f9ff49ca-dc3a-4820-a421-2d41cd4b5083') OR
>> (referring.reference = 'a18ac7c1-e100-444a-8d50-1631ac900a76')) OR
>> ((referring.reference = '417bf61c-696e-4a18-8792-1353ebd3800e') OR
>> ((referring.reference = '7ce8a1d4-62cd-4e66-bcf0-f6fd3276c767') OR
>> (referring.reference = '3be4cf2c-00a5-4f19-a846-925c02c4e6a2')))))) OR
>> (((((referring.reference = '70afe4aa-0ff9-4336-a030-f6d17b631865') OR
>> (referring.reference = '48d84382-b251-484d-a061-b2f3acc940f1')) OR
>> ((referring.reference = 'c2d2c2fd-4a37-4542-9cf2-0ab2ee85f56c') OR
>> (referring.reference = 'dc1972a8-30fa-4194-8640-bfc1d15b3226'))) OR
>> (((referring.reference = '10f1b4c7-2fbd-4d37-8765-324c22c1eb78') OR
>> (referring.reference = 'f5878662-8b75-4b56-9bf2-ddad05863b6b')) OR
>> ((referring.reference = 'dde13542-d444-445c-a260-735f44e1c5a5') OR
>> ((referring.reference = 'ee668110-7983-4f78-85bf-83396544a995') OR
>> (referring.reference = 'd5fddf5b-75c4-43a1-9f66-6b2bd1642b1d'))))) OR
>> ((((referring.reference = 'a7e08817-4da5-450a-8883-642358cbdee6') OR
>> (referring.reference = '7247e111-1096-43d2-a842-12194199f73f')) OR
>> ((referring.reference = 'ef8e1445-6995-4955-852f-7e8171f69dd5') OR
>> (referring.reference = 'e56b971d-5217-4677-8cd3-d9aed2e27868'))) OR
>> (((referring.reference = '4b167857-8f64-443d-96d5-d4b0f9230f8f') OR
>> (referring.reference = '56474a02-ef78-48da-bbda-a3976b766e82')) OR
>> ((referring.reference = 'dd45ab8c-aaee-48c0-88f2-1ebbc07d0ef4') OR
>> ((referring.reference = 'b5c6e3be-9a3e-4225-88a9-db73279f3bea') OR
>> (referring.reference = '759204cc-95e0-47c7-a353-0aa07f2925bc'))))))) OR
>> ((((((referring.reference = 'fad5544c-25cd-4d40-9780-a640cff4c34a') OR
>> (referring.reference = 'e805d4b0-eef1-4902-a57c-714eacf98aec')) OR
>> ((referring.reference = '32e12819-f842-4218-a081-73268e0248af') OR
>> (referring.reference = 'dd926ef4-66de-4268-b7a7-9dd22dc7822e'))) OR
>> (((referring.reference = 'fb1f114e-5d41-419f-b1d6-469b52584d8c') OR
>> (referring.reference = 'f0f81bf2-2936-4ad0-bd06-b8f77c08082b')) OR
>> ((referring.reference = 'a8e465b0-6ac3-4c71-9c05-0d0db5d4ed95') OR
>> ((referring.reference = '07ad03ad-22b2-4516-9ceb-4828799fa7d0') OR
>> (referring.reference = '85c7119b-05ff-462c-953e-8f7d204fbcc7'))))) OR
>> ((((referring.reference = '7a9a7382-3f09-4b16-a7f7-8891936f89d3') OR
>> (referring.reference = '494e2684-dd23-4ad0-b877-45072d5dabb0')) OR
>> ((referring.reference = 'f75fbcb6-756d-4289-b552-05e11ff724e8') OR
>> (referring.reference = '5f584bd6-178b-47ef-8a95-aef199221b70'))) OR
>> (((referring.reference = '30a56660-eadc-43db-b689-69390dacadf3') OR
>> (referring.reference = 'c5ef124c-955d-473a-9592-924ebeaf4cc0')) OR
>> ((referring.reference = 'aedf8dee-44f5-44aa-8b94-0f0811487c24') OR
>> ((referring.reference = 'f07e2d32-ced6-418c-80cd-473cdae38b9f') OR
>> (referring.reference = '7def13bb-e269-48dd-aebe-874fd1504776')))))) OR
>> (((((referring.reference = '73906c23-27fd-424d-84b5-677ee5528e7a') OR
>> (referring.reference = '7fb03b21-3dd1-42bc-8d66-81c5c8df4ba6')) OR
>> ((referring.reference = 'dc129f72-7fae-45fe-89cf-c5d7754a23a8') OR
>> (referring.reference = 'fa8c042f-055c-4453-942f-e6cd489fa0e4'))) OR
>> (((referring.reference = '04dea2e3-8a18-4ab0-9d38-a506d53be0cf') OR
>> (referring.reference = '18eb65d7-2e8b-4935-bb1b-4b7c493f9dea')) OR
>> ((referring.reference = '4c7171cb-caae-4747-9e44-0f01e8300b01') OR
>> ((referring.reference = '4db5ac73-2277-4be2-9fc0-f407d0aa4a90') OR
>> (referring.reference = '764811a0-5c44-4c9c-8162-5be67a046771'))))) OR
>> ((((referring.reference = '400f0efa-c1d2-416b-82f2-e5208e1152b1') OR
>> (referring.reference = '1fa1d92a-4af1-4db6-8bd7-ad38b762ae72')) OR
>> ((referring.reference = '6b3a9b45-040f-49a1-ba64-e13d5433b74e') OR
>> ((referring.reference = '9be29c73-8164-4be0-8b5f-34e889718a89') OR
>> (referring.reference = '9f72cac4-3fb6-456b-9a8d-77a391d48cbb')))) OR
>> (((referring.reference = '3c6d886e-9fb3-4080-b633-c1e1120b9da1') OR
>> (referring.reference = 'e2166375-5bf1-432e-a348-6cf40d97c6ae')) OR
>> ((referring.reference = '9d458e27-fbf3-4595-8739-61ec17d428c5') OR
>> ((referring.reference = '3e8da13a-e971-4720-be22-f6cb859b1b5b') OR
>> (referring.reference = '36b33131-03a7-46ed-987c-2d03c20cfe92')))))))))
>> AND ((referring.reference IS NOT NULL) AND (ISDESCENDANTNODE(referring,
>> [/article/2012/03/26]))), offset 0, limit -1
>> 2012-03-27 15:22:17.201 DEBUG [606360852@qtp-1418257117-3]
>> QueryEngine.java:480           SQL2 SORT took 0 ms.
>> 2012-03-27 15:22:17.201 DEBUG [606360852@qtp-1418257117-3]
>> QueryEngine.java:261       SQL2 JOIN RIGHT SIDE took 67 ms. fetched 0
>> rows.
>> 2012-03-27 15:22:17.202 DEBUG [606360852@qtp-1418257117-3]
>> QueryEngine.java:197    SQL2 JOIN executed first branch, took 87 ms.
>> 2012-03-27 15:22:17.214 DEBUG [606360852@qtp-1418257117-3]
>> QueryEngine.java:465           SQL2 SELECT took 11 ms. selector:
>> [own:unstructured] AS data, columns: [data.jcr:primaryType], constraint:
>> (((data.[phpcr:class] = 'Own\ApiBundle\Document\Article') AND
>> (data.publication = 'own')) AND ((CONTAINS(data.categories, 'KURZ')) AND
>> ((data.departmentSlugs = 'international') AND (NOT (data.permissionPath
>> like 'owns/%'))))) AND (((data.title IS NOT NULL) AND (data.title <>
>> '')) AND ((data.teaser IS NOT NULL) AND ((data.teaser <> '') AND
>> (ISDESCENDANTNODE(data, [/article/2012/03/26]))))), offset 0, limit -1
>> 2012-03-27 15:22:17.214 DEBUG [606360852@qtp-1418257117-3]
>> QueryEngine.java:480           SQL2 SORT took 0 ms.
>> 2012-03-27 15:22:17.215 DEBUG [606360852@qtp-1418257117-3]
>> QueryEngine.java:222       SQL2 JOIN LEFT SIDE took 13 ms. fetched 7 rows.
>> 2012-03-27 15:22:17.218 DEBUG [606360852@qtp-1418257117-3]
>> QueryEngine.java:465           SQL2 SELECT took 3 ms. selector:
>> [own:unstructured] AS referring, columns: [referring.jcr:primaryType],
>> constraint: ((referring.reference =
>> '221554f2-a8b8-47c6-8466-71d79d3bd763') OR ((referring.reference =
>> '07ad03ad-22b2-4516-9ceb-4828799fa7d0') OR (referring.reference =
>> '85c7119b-05ff-462c-953e-8f7d204fbcc7'))) OR (((referring.reference =
>> '6b3a9b45-040f-49a1-ba64-e13d5433b74e') OR (referring.reference =
>> 'dc129f72-7fae-45fe-89cf-c5d7754a23a8')) OR ((referring.reference =
>> '75086103-ed01-4711-acb1-76f6f4305a28') OR (referring.reference =
>> 'f1b31a93-bec1-4d55-bcd1-b5bbfdeffc8b'))), offset 0, limit -1
>> 2012-03-27 15:22:17.218 DEBUG [606360852@qtp-1418257117-3]
>> QueryEngine.java:480           SQL2 SORT took 0 ms.
>> 2012-03-27 15:22:17.219 DEBUG [606360852@qtp-1418257117-3]
>> QueryEngine.java:261       SQL2 JOIN RIGHT SIDE took 4 ms. fetched 0 rows.
>> 2012-03-27 15:22:17.220 DEBUG [606360852@qtp-1418257117-3]
>> QueryEngine.java:211    SQL2 JOIN executed second branch, took 18 ms.
>> 2012-03-27 15:22:17.221 DEBUG [606360852@qtp-1418257117-3]
>> QueryEngine.java:168     SQL2 SORT took 0 ms.
>> 2012-03-27 15:22:17.222 DEBUG [606360852@qtp-1418257117-3]
>> QueryEngine.java:117 SQL2 QUERY execute took 107 ms. native sort is false.
>>
>> obviously some difference ;)
>>
>> chregu
>>
>>
>>
>> On 27.03.12 13:30, Alex Parvulescu wrote:
>> > Hi Christian,
>> >
>> > can you enable debug logs
>> > on org.apache.jackrabbit.core.query.lucene.join.QueryEngine?
>> > I'm curious to see what the constraits look like in the big query vs the
>> > 2 small ones.
>> >
>> > This also goes for the join you've mentioned later in the thread, but I
>> > just wanted to start with the first query ;)
>> >
>> > alex
>> >
>> > On Tue, Mar 27, 2012 at 9:55 AM, Christian Stocker
>> > <christian.stocker@liip.ch <ma...@liip.ch>> wrote:
>> >
>> >     Hi
>> >
>> >     On 27.03.12 09:49, David Buchmann wrote:
>> >     > sorry, my bad. did not read correctly.
>> >     > you do have the paranthesis so you did what you wanted to do.
>> >     >
>> >     > looks like lucene/jackrabbit combine the 2 datasets first and
>> filter
>> >     > later...
>> >     >
>> >     > what if you try
>> >     >
>> >     >
>> >     > SELECT * FROM [own:unstructured] AS data
>> >     > WHERE
>> >     >     data.guid = 'J7B1X' AND ISDESCENDANTNODE(data, '/article')
>> >     >   OR
>> >     >     data.guid = 'J7B1X' AND ISDESCENDANTNODE(data,
>> '/import/article')
>> >     > ORDER BY firstImportDate DESC
>> >
>> >     I tried that and I tried it again now. Same response time as the
>> >     original query.
>> >
>> >     Any hints from someone who knows the internal workings of
>> >     jackrabbit/lucene?
>> >
>> >     chregu
>> >
>> >     >
>> >     > if this is fast, then the jackrabbit query engine is not very
>> >     clever...
>> >     >
>> >     > cheers,david
>> >     >
>> >     >
>> >     > Am 27.03.2012 09:10, schrieb David Buchmann:
>> >     >> i think the 2 queries are not equivalent. the first one is
>> >     equivalent to
>> >     >
>> >     >> ...
>> >     >> WHERE data.guid = 'J7B1X'
>> >     >>   AND (ISDESCENDANTNODE(data, '/article')
>> >     >
>> >     >> plus
>> >     >
>> >     >> WHERE
>> >     >>  ISDESCENDANTNODE(data, '/import/article')
>> >     >
>> >     >> (if you want the data.guid = ... to apply to both, you need
>> >     paranthesis)
>> >     >
>> >     >> but if /import/article is almost empty, i still don't see why the
>> >     >> combined query should take so long unless jackrabbit/lucene are
>> doing
>> >     >> something stupid.
>> >     >
>> >     >> cheers,david
>> >     >
>> >     >> Am 26.03.2012 22:28, schrieb Christian Stocker:
>> >     >>> Hi
>> >     >
>> >     >>> We have the following search query
>> >     >
>> >     >
>> >     >>> SELECT * FROM [own:unstructured] AS data WHERE data.guid =
>> 'J7B1X'
>> >     >>>             AND (ISDESCENDANTNODE(data, '/article')
>> >     >>>             OR ISDESCENDANTNODE(data, '/import/article')
>> >     >>>             )
>> >     >>>             ORDER BY firstImportDate DESC
>> >     >
>> >     >
>> >     >>> This query can take quite some time (up to 3 seconds, but it
>> >     gets more
>> >     >>> and more hte more data we have). In /article there's potentially
>> >     a lot
>> >     >>> of nodes, in /import/article usually almost nil.
>> >     >
>> >     >
>> >     >>> If we now separate the query into 2:
>> >     >
>> >     >>> SELECT * FROM [own:unstructured] AS data WHERE data.guid =
>> 'J7B1X'
>> >     >>>             AND ISDESCENDANTNODE(data, '/article')
>> >     >>>             ORDER BY firstImportDate DESC
>> >     >
>> >     >>> and
>> >     >
>> >     >>> SELECT * FROM [own:unstructured] AS data WHERE data.guid =
>> 'J7B1X'
>> >     >>>             AND ISDESCENDANTNODE(data, '/import/article')
>> >     >>>             ORDER BY firstImportDate DESC
>> >     >
>> >     >>> Both queries take approx. 10ms (and return 0 or 1 resultset,
>> >     more is not
>> >     >>> possible). So quite fast.
>> >     >
>> >     >>> Can anyone explain to me, why that is and how we could rewrite
>> >     the query
>> >     >>> to make it fast with a single one as well?
>> >     >
>> >     >>> Thanks
>> >     >
>> >     >>> chregu
>> >     >
>> >     >
>> >
>> >
>>
>> --
>> Liip AG  //  Feldstrasse 133 //  CH-8004 Zurich
>> Tel +41 43 500 39 81 // Mobile +41 76 561 88 60
>> www.liip.ch // blog.liip.ch // GnuPG 0x0748D5FE
>>
>>
>

Re: Strange Search Performance problem with OR

Posted by Alex Parvulescu <al...@gmail.com>.
hi,

> unfortunately the debug is not that descriptive (from my POV :))

yes, well the idea is to make it more user friendly :)
I added it with joins in mind so it doesn't say much (ahem, anything) about
how normal queries break down to lucene queries.

About the join query: it appears that in the case of the 0 hits, the query
engine is terribly inefficient, it fetches the entire subset of nodes:

> SQL2 JOIN LEFT SIDE took 8 ms. fetched 0 rows.
> SQL2 JOIN RIGHT SIDE took 845 ms. fetched 13055 rows.
...so it fetches 130k nodes and doesn't keep any of them.

whereas when it has something to work with it is able to generate some
proper conditions
> SQL2 JOIN LEFT SIDE took 18 ms. fetched 145 rows.
> SQL2 JOIN RIGHT SIDE took 67 ms. fetched 0 rows.

There is room for improvement here :)
I'm thinking if the left side of the join is empty, we can skip looking for
the right side entirely.
I'll create an issue to track this improvement.

good catch!

As for the other example, we can look into it tomorrow :)


best,
alex


On Tue, Mar 27, 2012 at 3:24 PM, Christian Stocker <
christian.stocker@liip.ch> wrote:

> Hi Alex
>
> unfortunately the debug is not that descriptive (from my POV :))
>
> For the query with the OR
>
>
> 2012-03-27 15:14:44.086 DEBUG [606360852@qtp-1418257117-3]
> QueryEngine.java:465   SQL2 SELECT took 6642 ms. selector:
> [own:unstructured] AS data, columns: [data.jcr:primaryType], constraint:
> (data.guid = 'J7B1X') AND ((ISDESCENDANTNODE(data, [/article])) OR
> (ISDESCENDANTNODE(data, [/import/article]))), offset 0, limit 5
> 2012-03-27 15:14:44.087 DEBUG [606360852@qtp-1418257117-3]
> QueryEngine.java:480   SQL2 SORT took 0 ms.
> 2012-03-27 15:14:44.087 DEBUG [606360852@qtp-1418257117-3]
> QueryEngine.java:117 SQL2 QUERY execute took 6643 ms. native sort is false.
>
>
> For the query without the or
>
> 2012-03-27 15:15:44.774 DEBUG [606360852@qtp-1418257117-3]
> QueryEngine.java:465   SQL2 SELECT took 5 ms. selector:
> [own:unstructured] AS data, columns: [data.jcr:primaryType], constraint:
> (data.guid = 'J7B1X') AND (ISDESCENDANTNODE(data, [/article])), offset
> 0, limit 5
> 2012-03-27 15:15:44.775 DEBUG [606360852@qtp-1418257117-3]
> QueryEngine.java:480   SQL2 SORT took 0 ms.
> 2012-03-27 15:15:44.775 DEBUG [606360852@qtp-1418257117-3]
> QueryEngine.java:117 SQL2 QUERY execute took 6 ms. native sort is false.
>
>
> For the later with no results:
> (or as file https://gist.github.com/761084c44997d6c7ad11)
>
> 2012-03-27 15:19:53.406 DEBUG [606360852@qtp-1418257117-3]
> QueryEngine.java:393   SQL2 JOIN analysis:
>  SQL2 JOIN inner split ->
>  +
>      SQL2 JOIN source: [own:unstructured] AS data LEFT OUTER JOIN
> [own:unstructured] AS referring ON referring.reference = data.[jcr:uuid]
>      SQL2 JOIN left constraint:  (((data.[phpcr:class] =
> 'Own\ApiBundle\Document\Article') AND (data.publication = 'own')) AND
> ((CONTAINS(data.categories, 'KURZ')) AND (data.departmentSlugs =
> 'front'))) AND (((NOT (data.permissionPath like 'owns/%')) AND
> (data.title IS NOT NULL)) AND ((data.title <> '') AND ((data.teaser IS
> NOT NULL) AND (data.teaser <> ''))))
>      SQL2 JOIN right constraint: (referring.reference IS NOT NULL) AND
> (ISDESCENDANTNODE(referring, [/article/2012/03/26]))
>  +
>      SQL2 JOIN source: [own:unstructured] AS data LEFT OUTER JOIN
> [own:unstructured] AS referring ON referring.reference = data.[jcr:uuid]
>      SQL2 JOIN left constraint:  (((data.[phpcr:class] =
> 'Own\ApiBundle\Document\Article') AND (data.publication = 'own')) AND
> ((CONTAINS(data.categories, 'KURZ')) AND ((data.departmentSlugs =
> 'front') AND (NOT (data.permissionPath like 'owns/%'))))) AND
> (((data.title IS NOT NULL) AND (data.title <> '')) AND ((data.teaser IS
> NOT NULL) AND ((data.teaser <> '') AND (ISDESCENDANTNODE(data,
> [/article/2012/03/26])))))
>      SQL2 JOIN right constraint: null
> 2012-03-27 15:19:53.407 DEBUG [606360852@qtp-1418257117-3]
> QueryEngine.java:182    SQL2 JOIN execute: there are multiple inner splits.
> 2012-03-27 15:19:53.414 DEBUG [606360852@qtp-1418257117-3]
> QueryEngine.java:465           SQL2 SELECT took 7 ms. selector:
> [own:unstructured] AS data, columns: [data.jcr:primaryType], constraint:
> (((data.[phpcr:class] = 'Own\ApiBundle\Document\Article') AND
> (data.publication = 'own')) AND ((CONTAINS(data.categories, 'KURZ')) AND
> (data.departmentSlugs = 'front'))) AND (((NOT (data.permissionPath like
> 'owns/%')) AND (data.title IS NOT NULL)) AND ((data.title <> '') AND
> ((data.teaser IS NOT NULL) AND (data.teaser <> '')))), offset 0, limit -1
> 2012-03-27 15:19:53.414 DEBUG [606360852@qtp-1418257117-3]
> QueryEngine.java:480           SQL2 SORT took 0 ms.
> 2012-03-27 15:19:53.415 DEBUG [606360852@qtp-1418257117-3]
> QueryEngine.java:222       SQL2 JOIN LEFT SIDE took 8 ms. fetched 0 rows.
> 2012-03-27 15:19:53.544 DEBUG [606360852@qtp-1418257117-3]
> QueryEngine.java:465           SQL2 SELECT took 129 ms. selector:
> [own:unstructured] AS referring, columns: [referring.jcr:primaryType],
> constraint: null, offset 0, limit -1
> 2012-03-27 15:19:53.544 DEBUG [606360852@qtp-1418257117-3]
> QueryEngine.java:480           SQL2 SORT took 0 ms.
> 2012-03-27 15:19:54.259 DEBUG [606360852@qtp-1418257117-3]
> QueryEngine.java:465           SQL2 SELECT took 6 ms. selector:
> [own:unstructured] AS referring, columns: [referring.jcr:primaryType],
> constraint: (referring.reference IS NOT NULL) AND
> (ISDESCENDANTNODE(referring, [/article/2012/03/26])), offset 0, limit -1
> 2012-03-27 15:19:54.260 DEBUG [606360852@qtp-1418257117-3]
> QueryEngine.java:480           SQL2 SORT took 0 ms.
> 2012-03-27 15:19:54.260 DEBUG [606360852@qtp-1418257117-3]
> QueryEngine.java:261       SQL2 JOIN RIGHT SIDE took 845 ms. fetched
> 13055 rows.
> 2012-03-27 15:19:54.340 DEBUG [606360852@qtp-1418257117-3]
> QueryEngine.java:197    SQL2 JOIN executed first branch, took 933 ms.
> 2012-03-27 15:19:54.346 DEBUG [606360852@qtp-1418257117-3]
> QueryEngine.java:465           SQL2 SELECT took 6 ms. selector:
> [own:unstructured] AS data, columns: [data.jcr:primaryType], constraint:
> (((data.[phpcr:class] = 'Own\ApiBundle\Document\Article') AND
> (data.publication = 'own')) AND ((CONTAINS(data.categories, 'KURZ')) AND
> ((data.departmentSlugs = 'front') AND (NOT (data.permissionPath like
> 'owns/%'))))) AND (((data.title IS NOT NULL) AND (data.title <> '')) AND
> ((data.teaser IS NOT NULL) AND ((data.teaser <> '') AND
> (ISDESCENDANTNODE(data, [/article/2012/03/26]))))), offset 0, limit -1
> 2012-03-27 15:19:54.347 DEBUG [606360852@qtp-1418257117-3]
> QueryEngine.java:480           SQL2 SORT took 0 ms.
> 2012-03-27 15:19:54.347 DEBUG [606360852@qtp-1418257117-3]
> QueryEngine.java:222       SQL2 JOIN LEFT SIDE took 7 ms. fetched 0 rows.
> 2012-03-27 15:19:54.412 DEBUG [606360852@qtp-1418257117-3]
> QueryEngine.java:465           SQL2 SELECT took 64 ms. selector:
> [own:unstructured] AS referring, columns: [referring.jcr:primaryType],
> constraint: null, offset 0, limit -1
> 2012-03-27 15:19:54.412 DEBUG [606360852@qtp-1418257117-3]
> QueryEngine.java:480           SQL2 SORT took 0 ms.
> 2012-03-27 15:19:55.172 DEBUG [606360852@qtp-1418257117-3]
> QueryEngine.java:261       SQL2 JOIN RIGHT SIDE took 825 ms. fetched
> 13055 rows.
> 2012-03-27 15:19:55.259 DEBUG [606360852@qtp-1418257117-3]
> QueryEngine.java:211    SQL2 JOIN executed second branch, took 919 ms.
> 2012-03-27 15:19:55.259 DEBUG [606360852@qtp-1418257117-3]
> QueryEngine.java:168     SQL2 SORT took 0 ms.
> 2012-03-27 15:19:55.259 DEBUG [606360852@qtp-1418257117-3]
> QueryEngine.java:117 SQL2 QUERY execute took 1853 ms. native sort is false.
>
>
> with results:
>
> (as file https://gist.github.com/c52b2d87558f90a491cc )
>
> 2012-03-27 15:22:17.114 DEBUG [606360852@qtp-1418257117-3]
> QueryEngine.java:393   SQL2 JOIN analysis:
>  SQL2 JOIN inner split ->
>  +
>      SQL2 JOIN source: [own:unstructured] AS data LEFT OUTER JOIN
> [own:unstructured] AS referring ON referring.reference = data.[jcr:uuid]
>      SQL2 JOIN left constraint:  (((data.[phpcr:class] =
> 'Own\ApiBundle\Document\Article') AND (data.publication = 'own')) AND
> ((CONTAINS(data.categories, 'KURZ')) AND (data.departmentSlugs =
> 'international'))) AND (((NOT (data.permissionPath like 'owns/%')) AND
> (data.title IS NOT NULL)) AND ((data.title <> '') AND ((data.teaser IS
> NOT NULL) AND (data.teaser <> ''))))
>      SQL2 JOIN right constraint: (referring.reference IS NOT NULL) AND
> (ISDESCENDANTNODE(referring, [/article/2012/03/26]))
>  +
>      SQL2 JOIN source: [own:unstructured] AS data LEFT OUTER JOIN
> [own:unstructured] AS referring ON referring.reference = data.[jcr:uuid]
>      SQL2 JOIN left constraint:  (((data.[phpcr:class] =
> 'Own\ApiBundle\Document\Article') AND (data.publication = 'own')) AND
> ((CONTAINS(data.categories, 'KURZ')) AND ((data.departmentSlugs =
> 'international') AND (NOT (data.permissionPath like 'owns/%'))))) AND
> (((data.title IS NOT NULL) AND (data.title <> '')) AND ((data.teaser IS
> NOT NULL) AND ((data.teaser <> '') AND (ISDESCENDANTNODE(data,
> [/article/2012/03/26])))))
>      SQL2 JOIN right constraint: null
> 2012-03-27 15:22:17.115 DEBUG [606360852@qtp-1418257117-3]
> QueryEngine.java:182    SQL2 JOIN execute: there are multiple inner splits.
> 2012-03-27 15:22:17.128 DEBUG [606360852@qtp-1418257117-3]
> QueryEngine.java:465           SQL2 SELECT took 13 ms. selector:
> [own:unstructured] AS data, columns: [data.jcr:primaryType], constraint:
> (((data.[phpcr:class] = 'Own\ApiBundle\Document\Article') AND
> (data.publication = 'own')) AND ((CONTAINS(data.categories, 'KURZ')) AND
> (data.departmentSlugs = 'international'))) AND (((NOT
> (data.permissionPath like 'owns/%')) AND (data.title IS NOT NULL)) AND
> ((data.title <> '') AND ((data.teaser IS NOT NULL) AND (data.teaser <>
> '')))), offset 0, limit -1
> 2012-03-27 15:22:17.128 DEBUG [606360852@qtp-1418257117-3]
> QueryEngine.java:480           SQL2 SORT took 0 ms.
> 2012-03-27 15:22:17.134 DEBUG [606360852@qtp-1418257117-3]
> QueryEngine.java:222       SQL2 JOIN LEFT SIDE took 18 ms. fetched 145
> rows.
> 2012-03-27 15:22:17.183 DEBUG [606360852@qtp-1418257117-3]
> QueryEngine.java:465           SQL2 SELECT took 45 ms. selector:
> [own:unstructured] AS referring, columns: [referring.jcr:primaryType],
> constraint: (((((((referring.reference =
> 'dabef043-d963-4c25-8b1b-d8db8335fc14') OR (referring.reference =
> '360178d6-4d06-480e-99f5-9936e3d0285e')) OR ((referring.reference =
> '64a72ae9-a5c0-45cb-85e1-f7cb403f851d') OR (referring.reference =
> 'fb13c508-3751-43fd-b2b0-74bb52688f6a'))) OR (((referring.reference =
> 'f3cb740d-0503-4cf7-b725-6ac2b071e627') OR (referring.reference =
> 'e8896428-0a90-4f39-815e-2034f9821fed')) OR ((referring.reference =
> '363032f7-4576-492c-9778-bad13de1b83e') OR ((referring.reference =
> '9d3b1524-e1a9-4656-9efb-1734ae20d8c1') OR (referring.reference =
> 'a3664b9c-feba-4b50-80c9-b15de8e00f0d'))))) OR ((((referring.reference =
> '5626d03a-7056-4369-91c2-95674976954f') OR (referring.reference =
> 'b0a8165c-647a-427b-baeb-6bb8095b2e25')) OR ((referring.reference =
> '416b72c7-3d45-46ed-81f4-bb5665765e1f') OR (referring.reference =
> 'e543b2fd-9606-4676-bea4-80dc6c0ecfdc'))) OR (((referring.reference =
> '1b46f1bf-2121-492d-8886-b1271496a4e4') OR (referring.reference =
> 'a71a5af1-41d0-4a9b-9590-7355bfb6c8fe')) OR ((referring.reference =
> 'fc4448d5-6270-40d4-9a7e-ffaa32bbf0e4') OR ((referring.reference =
> 'f6c49452-3a55-4bd0-929f-590652fbca62') OR (referring.reference =
> '03fbc4a5-6fa1-442f-98c3-21e2c1626eab')))))) OR (((((referring.reference
> = '11e8f268-7137-4c12-8a2c-d665fc9bc8c1') OR (referring.reference =
> 'e6a7fb91-1a47-4c96-ab2b-d99e17fe1058')) OR ((referring.reference =
> '3f590d84-3fdf-46c8-ba24-edff3c18d380') OR (referring.reference =
> 'dd390426-71b9-442b-b21d-f781d6f92108'))) OR (((referring.reference =
> '0553667e-8fd8-475d-9c37-aa32059d6ca3') OR (referring.reference =
> '85a88a31-354b-484c-8cd8-49ff964b3a31')) OR ((referring.reference =
> '5796b1a0-9a48-4684-bdcd-ca81a4a668b2') OR ((referring.reference =
> '8c1556f5-a1ac-48b0-b378-9d49df208a06') OR (referring.reference =
> 'cf3415c4-0eab-44d5-84f3-6cb81a95275f'))))) OR ((((referring.reference =
> '52ae2f47-9e5f-4e6b-8f8a-b02db35ef4fb') OR (referring.reference =
> '793a47e6-4903-46c5-9a4b-93942ac052b6')) OR ((referring.reference =
> 'd1d18eab-749e-40aa-895a-669b7554f6ec') OR (referring.reference =
> '14361658-a4d1-43af-a4b8-10f0cfdab623'))) OR (((referring.reference =
> '3307515f-0943-481a-b87e-7c20f734536f') OR (referring.reference =
> '1c72c6c1-eb29-4ace-9fde-e1372ee21a6a')) OR ((referring.reference =
> '35c502cb-9456-4a1f-91ca-18a8057c0c72') OR ((referring.reference =
> 'f3d7dd59-3a27-4a1e-b991-a28452695ed0') OR (referring.reference =
> '5953a950-6def-4832-9db2-4641ede368ef'))))))) OR
> ((((((referring.reference = '9c86d524-3ff2-4c10-95a2-449fb751711a') OR
> (referring.reference = '22cf7cca-90cb-4f3f-b0ac-338f8da9c813')) OR
> ((referring.reference = '302595c5-fce5-42ba-ba88-466a1d234458') OR
> (referring.reference = 'a7fba88b-1f16-4ac2-91b5-3dfc2084ee7c'))) OR
> (((referring.reference = 'd5b4f2e2-3232-402d-950e-88a27cc5944d') OR
> (referring.reference = 'f5123108-19af-48ee-9922-90f9830486fc')) OR
> ((referring.reference = '221554f2-a8b8-47c6-8466-71d79d3bd763') OR
> ((referring.reference = '0ff48319-b415-43c6-aafa-8b56f8b556d9') OR
> (referring.reference = 'c2839883-7fc0-439e-aba5-309cf95f0117'))))) OR
> ((((referring.reference = 'c3c9ed93-a5c7-4a40-9f19-90595554da41') OR
> (referring.reference = '356909e9-25f7-46c3-9a95-dcedfc583fe7')) OR
> ((referring.reference = '770466bd-2917-433d-8106-2a00d4449a02') OR
> (referring.reference = 'f8ebf6bb-a1b2-4334-af23-634e962cc2ca'))) OR
> (((referring.reference = '75086103-ed01-4711-acb1-76f6f4305a28') OR
> (referring.reference = '602f4c8d-99b1-45b7-9096-bc047097f840')) OR
> ((referring.reference = 'd97de87a-a5c6-4a25-8c45-550d6bcd5cf2') OR
> ((referring.reference = 'f1b31a93-bec1-4d55-bcd1-b5bbfdeffc8b') OR
> (referring.reference = 'f7104878-40b5-4afb-90b0-64bdcbc39258')))))) OR
> (((((referring.reference = '4509d2ed-f95f-45f3-adb6-3c60b28721a8') OR
> (referring.reference = 'ea23a845-a744-41d3-8ccf-e18592f20c2c')) OR
> ((referring.reference = '7a0837b6-989b-49f9-8d1b-7ba1bee66934') OR
> (referring.reference = '705288d8-1ffd-4d90-b066-a503e046d009'))) OR
> (((referring.reference = '8e693e6c-c29f-44aa-a734-0b94f4035995') OR
> (referring.reference = 'e126b2f3-23d9-488e-a0b9-6c234b3fad71')) OR
> ((referring.reference = '2c3e7ca8-92fa-4b0a-875d-1e3a9b6cc9ff') OR
> ((referring.reference = '92eca2e3-cff0-4ec6-952a-bac3fa72befb') OR
> (referring.reference = 'ceeb5abf-a47c-4a2d-b40b-246a5c979d05'))))) OR
> ((((referring.reference = 'db2fc503-2685-437b-84ec-360bcdd25617') OR
> (referring.reference = 'fb64a059-12a4-4204-86bc-3a484da14962')) OR
> ((referring.reference = '8219a54b-25ed-4531-897b-1b7d98c86236') OR
> (referring.reference = '66272d61-d4e9-48d1-88c4-853d8337cc37'))) OR
> (((referring.reference = '486bd99d-e20d-413e-b7a5-65bb8c0a70f2') OR
> (referring.reference = '7c75e0cc-27d9-4979-8c10-04bcf68786a4')) OR
> ((referring.reference = 'b3ff705b-e5b9-4d96-9263-b8e5f7a7c9e4') OR
> ((referring.reference = 'b509f992-a8d2-4249-906b-f0f589781f12') OR
> (referring.reference = '422c0683-e785-43a5-8128-1de3f08348aa')))))))) OR
> (((((((referring.reference = '970f35bd-e8d3-49fc-8e63-264bb395fba7') OR
> (referring.reference = '1dcc2ad7-c0e9-48f8-83c4-e31c2bf272df')) OR
> ((referring.reference = '43ae876f-1307-4c4e-8d2b-8ebe781f775b') OR
> (referring.reference = '4ac9e304-15e3-4b19-8406-51a39bfdcc6a'))) OR
> (((referring.reference = 'bf0c9f9d-43de-4aa3-9177-bd6ad6dabf0d') OR
> (referring.reference = '4627e7bd-175d-4680-8b18-9856145534be')) OR
> ((referring.reference = 'd3e16650-29f2-4681-9fb3-2be83ae7adb2') OR
> ((referring.reference = 'a6859cb7-3f9f-49f5-9d6f-47246c484eec') OR
> (referring.reference = '2974618a-bbb6-4bae-a0cb-e3e82babee05'))))) OR
> ((((referring.reference = 'ab4cc140-2c48-432e-986b-af9536c3809d') OR
> (referring.reference = '543987d1-c6fa-47e2-86db-b0926323edd0')) OR
> ((referring.reference = '7f9149d2-bdc7-4394-9efe-aa3cd1ac201c') OR
> (referring.reference = 'd5fcf8f1-a06d-42ee-a9ff-7b778457d56c'))) OR
> (((referring.reference = 'f9ff49ca-dc3a-4820-a421-2d41cd4b5083') OR
> (referring.reference = 'a18ac7c1-e100-444a-8d50-1631ac900a76')) OR
> ((referring.reference = '417bf61c-696e-4a18-8792-1353ebd3800e') OR
> ((referring.reference = '7ce8a1d4-62cd-4e66-bcf0-f6fd3276c767') OR
> (referring.reference = '3be4cf2c-00a5-4f19-a846-925c02c4e6a2')))))) OR
> (((((referring.reference = '70afe4aa-0ff9-4336-a030-f6d17b631865') OR
> (referring.reference = '48d84382-b251-484d-a061-b2f3acc940f1')) OR
> ((referring.reference = 'c2d2c2fd-4a37-4542-9cf2-0ab2ee85f56c') OR
> (referring.reference = 'dc1972a8-30fa-4194-8640-bfc1d15b3226'))) OR
> (((referring.reference = '10f1b4c7-2fbd-4d37-8765-324c22c1eb78') OR
> (referring.reference = 'f5878662-8b75-4b56-9bf2-ddad05863b6b')) OR
> ((referring.reference = 'dde13542-d444-445c-a260-735f44e1c5a5') OR
> ((referring.reference = 'ee668110-7983-4f78-85bf-83396544a995') OR
> (referring.reference = 'd5fddf5b-75c4-43a1-9f66-6b2bd1642b1d'))))) OR
> ((((referring.reference = 'a7e08817-4da5-450a-8883-642358cbdee6') OR
> (referring.reference = '7247e111-1096-43d2-a842-12194199f73f')) OR
> ((referring.reference = 'ef8e1445-6995-4955-852f-7e8171f69dd5') OR
> (referring.reference = 'e56b971d-5217-4677-8cd3-d9aed2e27868'))) OR
> (((referring.reference = '4b167857-8f64-443d-96d5-d4b0f9230f8f') OR
> (referring.reference = '56474a02-ef78-48da-bbda-a3976b766e82')) OR
> ((referring.reference = 'dd45ab8c-aaee-48c0-88f2-1ebbc07d0ef4') OR
> ((referring.reference = 'b5c6e3be-9a3e-4225-88a9-db73279f3bea') OR
> (referring.reference = '759204cc-95e0-47c7-a353-0aa07f2925bc'))))))) OR
> ((((((referring.reference = 'fad5544c-25cd-4d40-9780-a640cff4c34a') OR
> (referring.reference = 'e805d4b0-eef1-4902-a57c-714eacf98aec')) OR
> ((referring.reference = '32e12819-f842-4218-a081-73268e0248af') OR
> (referring.reference = 'dd926ef4-66de-4268-b7a7-9dd22dc7822e'))) OR
> (((referring.reference = 'fb1f114e-5d41-419f-b1d6-469b52584d8c') OR
> (referring.reference = 'f0f81bf2-2936-4ad0-bd06-b8f77c08082b')) OR
> ((referring.reference = 'a8e465b0-6ac3-4c71-9c05-0d0db5d4ed95') OR
> ((referring.reference = '07ad03ad-22b2-4516-9ceb-4828799fa7d0') OR
> (referring.reference = '85c7119b-05ff-462c-953e-8f7d204fbcc7'))))) OR
> ((((referring.reference = '7a9a7382-3f09-4b16-a7f7-8891936f89d3') OR
> (referring.reference = '494e2684-dd23-4ad0-b877-45072d5dabb0')) OR
> ((referring.reference = 'f75fbcb6-756d-4289-b552-05e11ff724e8') OR
> (referring.reference = '5f584bd6-178b-47ef-8a95-aef199221b70'))) OR
> (((referring.reference = '30a56660-eadc-43db-b689-69390dacadf3') OR
> (referring.reference = 'c5ef124c-955d-473a-9592-924ebeaf4cc0')) OR
> ((referring.reference = 'aedf8dee-44f5-44aa-8b94-0f0811487c24') OR
> ((referring.reference = 'f07e2d32-ced6-418c-80cd-473cdae38b9f') OR
> (referring.reference = '7def13bb-e269-48dd-aebe-874fd1504776')))))) OR
> (((((referring.reference = '73906c23-27fd-424d-84b5-677ee5528e7a') OR
> (referring.reference = '7fb03b21-3dd1-42bc-8d66-81c5c8df4ba6')) OR
> ((referring.reference = 'dc129f72-7fae-45fe-89cf-c5d7754a23a8') OR
> (referring.reference = 'fa8c042f-055c-4453-942f-e6cd489fa0e4'))) OR
> (((referring.reference = '04dea2e3-8a18-4ab0-9d38-a506d53be0cf') OR
> (referring.reference = '18eb65d7-2e8b-4935-bb1b-4b7c493f9dea')) OR
> ((referring.reference = '4c7171cb-caae-4747-9e44-0f01e8300b01') OR
> ((referring.reference = '4db5ac73-2277-4be2-9fc0-f407d0aa4a90') OR
> (referring.reference = '764811a0-5c44-4c9c-8162-5be67a046771'))))) OR
> ((((referring.reference = '400f0efa-c1d2-416b-82f2-e5208e1152b1') OR
> (referring.reference = '1fa1d92a-4af1-4db6-8bd7-ad38b762ae72')) OR
> ((referring.reference = '6b3a9b45-040f-49a1-ba64-e13d5433b74e') OR
> ((referring.reference = '9be29c73-8164-4be0-8b5f-34e889718a89') OR
> (referring.reference = '9f72cac4-3fb6-456b-9a8d-77a391d48cbb')))) OR
> (((referring.reference = '3c6d886e-9fb3-4080-b633-c1e1120b9da1') OR
> (referring.reference = 'e2166375-5bf1-432e-a348-6cf40d97c6ae')) OR
> ((referring.reference = '9d458e27-fbf3-4595-8739-61ec17d428c5') OR
> ((referring.reference = '3e8da13a-e971-4720-be22-f6cb859b1b5b') OR
> (referring.reference = '36b33131-03a7-46ed-987c-2d03c20cfe92')))))))),
> offset 0, limit -1
> 2012-03-27 15:22:17.184 DEBUG [606360852@qtp-1418257117-3]
> QueryEngine.java:480           SQL2 SORT took 0 ms.
> 2012-03-27 15:22:17.200 DEBUG [606360852@qtp-1418257117-3]
> QueryEngine.java:465           SQL2 SELECT took 14 ms. selector:
> [own:unstructured] AS referring, columns: [referring.jcr:primaryType],
> constraint: ((((((((referring.reference =
> 'dabef043-d963-4c25-8b1b-d8db8335fc14') OR (referring.reference =
> '360178d6-4d06-480e-99f5-9936e3d0285e')) OR ((referring.reference =
> '64a72ae9-a5c0-45cb-85e1-f7cb403f851d') OR (referring.reference =
> 'fb13c508-3751-43fd-b2b0-74bb52688f6a'))) OR (((referring.reference =
> 'f3cb740d-0503-4cf7-b725-6ac2b071e627') OR (referring.reference =
> 'e8896428-0a90-4f39-815e-2034f9821fed')) OR ((referring.reference =
> '363032f7-4576-492c-9778-bad13de1b83e') OR ((referring.reference =
> '9d3b1524-e1a9-4656-9efb-1734ae20d8c1') OR (referring.reference =
> 'a3664b9c-feba-4b50-80c9-b15de8e00f0d'))))) OR ((((referring.reference =
> '5626d03a-7056-4369-91c2-95674976954f') OR (referring.reference =
> 'b0a8165c-647a-427b-baeb-6bb8095b2e25')) OR ((referring.reference =
> '416b72c7-3d45-46ed-81f4-bb5665765e1f') OR (referring.reference =
> 'e543b2fd-9606-4676-bea4-80dc6c0ecfdc'))) OR (((referring.reference =
> '1b46f1bf-2121-492d-8886-b1271496a4e4') OR (referring.reference =
> 'a71a5af1-41d0-4a9b-9590-7355bfb6c8fe')) OR ((referring.reference =
> 'fc4448d5-6270-40d4-9a7e-ffaa32bbf0e4') OR ((referring.reference =
> 'f6c49452-3a55-4bd0-929f-590652fbca62') OR (referring.reference =
> '03fbc4a5-6fa1-442f-98c3-21e2c1626eab')))))) OR (((((referring.reference
> = '11e8f268-7137-4c12-8a2c-d665fc9bc8c1') OR (referring.reference =
> 'e6a7fb91-1a47-4c96-ab2b-d99e17fe1058')) OR ((referring.reference =
> '3f590d84-3fdf-46c8-ba24-edff3c18d380') OR (referring.reference =
> 'dd390426-71b9-442b-b21d-f781d6f92108'))) OR (((referring.reference =
> '0553667e-8fd8-475d-9c37-aa32059d6ca3') OR (referring.reference =
> '85a88a31-354b-484c-8cd8-49ff964b3a31')) OR ((referring.reference =
> '5796b1a0-9a48-4684-bdcd-ca81a4a668b2') OR ((referring.reference =
> '8c1556f5-a1ac-48b0-b378-9d49df208a06') OR (referring.reference =
> 'cf3415c4-0eab-44d5-84f3-6cb81a95275f'))))) OR ((((referring.reference =
> '52ae2f47-9e5f-4e6b-8f8a-b02db35ef4fb') OR (referring.reference =
> '793a47e6-4903-46c5-9a4b-93942ac052b6')) OR ((referring.reference =
> 'd1d18eab-749e-40aa-895a-669b7554f6ec') OR (referring.reference =
> '14361658-a4d1-43af-a4b8-10f0cfdab623'))) OR (((referring.reference =
> '3307515f-0943-481a-b87e-7c20f734536f') OR (referring.reference =
> '1c72c6c1-eb29-4ace-9fde-e1372ee21a6a')) OR ((referring.reference =
> '35c502cb-9456-4a1f-91ca-18a8057c0c72') OR ((referring.reference =
> 'f3d7dd59-3a27-4a1e-b991-a28452695ed0') OR (referring.reference =
> '5953a950-6def-4832-9db2-4641ede368ef'))))))) OR
> ((((((referring.reference = '9c86d524-3ff2-4c10-95a2-449fb751711a') OR
> (referring.reference = '22cf7cca-90cb-4f3f-b0ac-338f8da9c813')) OR
> ((referring.reference = '302595c5-fce5-42ba-ba88-466a1d234458') OR
> (referring.reference = 'a7fba88b-1f16-4ac2-91b5-3dfc2084ee7c'))) OR
> (((referring.reference = 'd5b4f2e2-3232-402d-950e-88a27cc5944d') OR
> (referring.reference = 'f5123108-19af-48ee-9922-90f9830486fc')) OR
> ((referring.reference = '221554f2-a8b8-47c6-8466-71d79d3bd763') OR
> ((referring.reference = '0ff48319-b415-43c6-aafa-8b56f8b556d9') OR
> (referring.reference = 'c2839883-7fc0-439e-aba5-309cf95f0117'))))) OR
> ((((referring.reference = 'c3c9ed93-a5c7-4a40-9f19-90595554da41') OR
> (referring.reference = '356909e9-25f7-46c3-9a95-dcedfc583fe7')) OR
> ((referring.reference = '770466bd-2917-433d-8106-2a00d4449a02') OR
> (referring.reference = 'f8ebf6bb-a1b2-4334-af23-634e962cc2ca'))) OR
> (((referring.reference = '75086103-ed01-4711-acb1-76f6f4305a28') OR
> (referring.reference = '602f4c8d-99b1-45b7-9096-bc047097f840')) OR
> ((referring.reference = 'd97de87a-a5c6-4a25-8c45-550d6bcd5cf2') OR
> ((referring.reference = 'f1b31a93-bec1-4d55-bcd1-b5bbfdeffc8b') OR
> (referring.reference = 'f7104878-40b5-4afb-90b0-64bdcbc39258')))))) OR
> (((((referring.reference = '4509d2ed-f95f-45f3-adb6-3c60b28721a8') OR
> (referring.reference = 'ea23a845-a744-41d3-8ccf-e18592f20c2c')) OR
> ((referring.reference = '7a0837b6-989b-49f9-8d1b-7ba1bee66934') OR
> (referring.reference = '705288d8-1ffd-4d90-b066-a503e046d009'))) OR
> (((referring.reference = '8e693e6c-c29f-44aa-a734-0b94f4035995') OR
> (referring.reference = 'e126b2f3-23d9-488e-a0b9-6c234b3fad71')) OR
> ((referring.reference = '2c3e7ca8-92fa-4b0a-875d-1e3a9b6cc9ff') OR
> ((referring.reference = '92eca2e3-cff0-4ec6-952a-bac3fa72befb') OR
> (referring.reference = 'ceeb5abf-a47c-4a2d-b40b-246a5c979d05'))))) OR
> ((((referring.reference = 'db2fc503-2685-437b-84ec-360bcdd25617') OR
> (referring.reference = 'fb64a059-12a4-4204-86bc-3a484da14962')) OR
> ((referring.reference = '8219a54b-25ed-4531-897b-1b7d98c86236') OR
> (referring.reference = '66272d61-d4e9-48d1-88c4-853d8337cc37'))) OR
> (((referring.reference = '486bd99d-e20d-413e-b7a5-65bb8c0a70f2') OR
> (referring.reference = '7c75e0cc-27d9-4979-8c10-04bcf68786a4')) OR
> ((referring.reference = 'b3ff705b-e5b9-4d96-9263-b8e5f7a7c9e4') OR
> ((referring.reference = 'b509f992-a8d2-4249-906b-f0f589781f12') OR
> (referring.reference = '422c0683-e785-43a5-8128-1de3f08348aa')))))))) OR
> (((((((referring.reference = '970f35bd-e8d3-49fc-8e63-264bb395fba7') OR
> (referring.reference = '1dcc2ad7-c0e9-48f8-83c4-e31c2bf272df')) OR
> ((referring.reference = '43ae876f-1307-4c4e-8d2b-8ebe781f775b') OR
> (referring.reference = '4ac9e304-15e3-4b19-8406-51a39bfdcc6a'))) OR
> (((referring.reference = 'bf0c9f9d-43de-4aa3-9177-bd6ad6dabf0d') OR
> (referring.reference = '4627e7bd-175d-4680-8b18-9856145534be')) OR
> ((referring.reference = 'd3e16650-29f2-4681-9fb3-2be83ae7adb2') OR
> ((referring.reference = 'a6859cb7-3f9f-49f5-9d6f-47246c484eec') OR
> (referring.reference = '2974618a-bbb6-4bae-a0cb-e3e82babee05'))))) OR
> ((((referring.reference = 'ab4cc140-2c48-432e-986b-af9536c3809d') OR
> (referring.reference = '543987d1-c6fa-47e2-86db-b0926323edd0')) OR
> ((referring.reference = '7f9149d2-bdc7-4394-9efe-aa3cd1ac201c') OR
> (referring.reference = 'd5fcf8f1-a06d-42ee-a9ff-7b778457d56c'))) OR
> (((referring.reference = 'f9ff49ca-dc3a-4820-a421-2d41cd4b5083') OR
> (referring.reference = 'a18ac7c1-e100-444a-8d50-1631ac900a76')) OR
> ((referring.reference = '417bf61c-696e-4a18-8792-1353ebd3800e') OR
> ((referring.reference = '7ce8a1d4-62cd-4e66-bcf0-f6fd3276c767') OR
> (referring.reference = '3be4cf2c-00a5-4f19-a846-925c02c4e6a2')))))) OR
> (((((referring.reference = '70afe4aa-0ff9-4336-a030-f6d17b631865') OR
> (referring.reference = '48d84382-b251-484d-a061-b2f3acc940f1')) OR
> ((referring.reference = 'c2d2c2fd-4a37-4542-9cf2-0ab2ee85f56c') OR
> (referring.reference = 'dc1972a8-30fa-4194-8640-bfc1d15b3226'))) OR
> (((referring.reference = '10f1b4c7-2fbd-4d37-8765-324c22c1eb78') OR
> (referring.reference = 'f5878662-8b75-4b56-9bf2-ddad05863b6b')) OR
> ((referring.reference = 'dde13542-d444-445c-a260-735f44e1c5a5') OR
> ((referring.reference = 'ee668110-7983-4f78-85bf-83396544a995') OR
> (referring.reference = 'd5fddf5b-75c4-43a1-9f66-6b2bd1642b1d'))))) OR
> ((((referring.reference = 'a7e08817-4da5-450a-8883-642358cbdee6') OR
> (referring.reference = '7247e111-1096-43d2-a842-12194199f73f')) OR
> ((referring.reference = 'ef8e1445-6995-4955-852f-7e8171f69dd5') OR
> (referring.reference = 'e56b971d-5217-4677-8cd3-d9aed2e27868'))) OR
> (((referring.reference = '4b167857-8f64-443d-96d5-d4b0f9230f8f') OR
> (referring.reference = '56474a02-ef78-48da-bbda-a3976b766e82')) OR
> ((referring.reference = 'dd45ab8c-aaee-48c0-88f2-1ebbc07d0ef4') OR
> ((referring.reference = 'b5c6e3be-9a3e-4225-88a9-db73279f3bea') OR
> (referring.reference = '759204cc-95e0-47c7-a353-0aa07f2925bc'))))))) OR
> ((((((referring.reference = 'fad5544c-25cd-4d40-9780-a640cff4c34a') OR
> (referring.reference = 'e805d4b0-eef1-4902-a57c-714eacf98aec')) OR
> ((referring.reference = '32e12819-f842-4218-a081-73268e0248af') OR
> (referring.reference = 'dd926ef4-66de-4268-b7a7-9dd22dc7822e'))) OR
> (((referring.reference = 'fb1f114e-5d41-419f-b1d6-469b52584d8c') OR
> (referring.reference = 'f0f81bf2-2936-4ad0-bd06-b8f77c08082b')) OR
> ((referring.reference = 'a8e465b0-6ac3-4c71-9c05-0d0db5d4ed95') OR
> ((referring.reference = '07ad03ad-22b2-4516-9ceb-4828799fa7d0') OR
> (referring.reference = '85c7119b-05ff-462c-953e-8f7d204fbcc7'))))) OR
> ((((referring.reference = '7a9a7382-3f09-4b16-a7f7-8891936f89d3') OR
> (referring.reference = '494e2684-dd23-4ad0-b877-45072d5dabb0')) OR
> ((referring.reference = 'f75fbcb6-756d-4289-b552-05e11ff724e8') OR
> (referring.reference = '5f584bd6-178b-47ef-8a95-aef199221b70'))) OR
> (((referring.reference = '30a56660-eadc-43db-b689-69390dacadf3') OR
> (referring.reference = 'c5ef124c-955d-473a-9592-924ebeaf4cc0')) OR
> ((referring.reference = 'aedf8dee-44f5-44aa-8b94-0f0811487c24') OR
> ((referring.reference = 'f07e2d32-ced6-418c-80cd-473cdae38b9f') OR
> (referring.reference = '7def13bb-e269-48dd-aebe-874fd1504776')))))) OR
> (((((referring.reference = '73906c23-27fd-424d-84b5-677ee5528e7a') OR
> (referring.reference = '7fb03b21-3dd1-42bc-8d66-81c5c8df4ba6')) OR
> ((referring.reference = 'dc129f72-7fae-45fe-89cf-c5d7754a23a8') OR
> (referring.reference = 'fa8c042f-055c-4453-942f-e6cd489fa0e4'))) OR
> (((referring.reference = '04dea2e3-8a18-4ab0-9d38-a506d53be0cf') OR
> (referring.reference = '18eb65d7-2e8b-4935-bb1b-4b7c493f9dea')) OR
> ((referring.reference = '4c7171cb-caae-4747-9e44-0f01e8300b01') OR
> ((referring.reference = '4db5ac73-2277-4be2-9fc0-f407d0aa4a90') OR
> (referring.reference = '764811a0-5c44-4c9c-8162-5be67a046771'))))) OR
> ((((referring.reference = '400f0efa-c1d2-416b-82f2-e5208e1152b1') OR
> (referring.reference = '1fa1d92a-4af1-4db6-8bd7-ad38b762ae72')) OR
> ((referring.reference = '6b3a9b45-040f-49a1-ba64-e13d5433b74e') OR
> ((referring.reference = '9be29c73-8164-4be0-8b5f-34e889718a89') OR
> (referring.reference = '9f72cac4-3fb6-456b-9a8d-77a391d48cbb')))) OR
> (((referring.reference = '3c6d886e-9fb3-4080-b633-c1e1120b9da1') OR
> (referring.reference = 'e2166375-5bf1-432e-a348-6cf40d97c6ae')) OR
> ((referring.reference = '9d458e27-fbf3-4595-8739-61ec17d428c5') OR
> ((referring.reference = '3e8da13a-e971-4720-be22-f6cb859b1b5b') OR
> (referring.reference = '36b33131-03a7-46ed-987c-2d03c20cfe92')))))))))
> AND ((referring.reference IS NOT NULL) AND (ISDESCENDANTNODE(referring,
> [/article/2012/03/26]))), offset 0, limit -1
> 2012-03-27 15:22:17.201 DEBUG [606360852@qtp-1418257117-3]
> QueryEngine.java:480           SQL2 SORT took 0 ms.
> 2012-03-27 15:22:17.201 DEBUG [606360852@qtp-1418257117-3]
> QueryEngine.java:261       SQL2 JOIN RIGHT SIDE took 67 ms. fetched 0 rows.
> 2012-03-27 15:22:17.202 DEBUG [606360852@qtp-1418257117-3]
> QueryEngine.java:197    SQL2 JOIN executed first branch, took 87 ms.
> 2012-03-27 15:22:17.214 DEBUG [606360852@qtp-1418257117-3]
> QueryEngine.java:465           SQL2 SELECT took 11 ms. selector:
> [own:unstructured] AS data, columns: [data.jcr:primaryType], constraint:
> (((data.[phpcr:class] = 'Own\ApiBundle\Document\Article') AND
> (data.publication = 'own')) AND ((CONTAINS(data.categories, 'KURZ')) AND
> ((data.departmentSlugs = 'international') AND (NOT (data.permissionPath
> like 'owns/%'))))) AND (((data.title IS NOT NULL) AND (data.title <>
> '')) AND ((data.teaser IS NOT NULL) AND ((data.teaser <> '') AND
> (ISDESCENDANTNODE(data, [/article/2012/03/26]))))), offset 0, limit -1
> 2012-03-27 15:22:17.214 DEBUG [606360852@qtp-1418257117-3]
> QueryEngine.java:480           SQL2 SORT took 0 ms.
> 2012-03-27 15:22:17.215 DEBUG [606360852@qtp-1418257117-3]
> QueryEngine.java:222       SQL2 JOIN LEFT SIDE took 13 ms. fetched 7 rows.
> 2012-03-27 15:22:17.218 DEBUG [606360852@qtp-1418257117-3]
> QueryEngine.java:465           SQL2 SELECT took 3 ms. selector:
> [own:unstructured] AS referring, columns: [referring.jcr:primaryType],
> constraint: ((referring.reference =
> '221554f2-a8b8-47c6-8466-71d79d3bd763') OR ((referring.reference =
> '07ad03ad-22b2-4516-9ceb-4828799fa7d0') OR (referring.reference =
> '85c7119b-05ff-462c-953e-8f7d204fbcc7'))) OR (((referring.reference =
> '6b3a9b45-040f-49a1-ba64-e13d5433b74e') OR (referring.reference =
> 'dc129f72-7fae-45fe-89cf-c5d7754a23a8')) OR ((referring.reference =
> '75086103-ed01-4711-acb1-76f6f4305a28') OR (referring.reference =
> 'f1b31a93-bec1-4d55-bcd1-b5bbfdeffc8b'))), offset 0, limit -1
> 2012-03-27 15:22:17.218 DEBUG [606360852@qtp-1418257117-3]
> QueryEngine.java:480           SQL2 SORT took 0 ms.
> 2012-03-27 15:22:17.219 DEBUG [606360852@qtp-1418257117-3]
> QueryEngine.java:261       SQL2 JOIN RIGHT SIDE took 4 ms. fetched 0 rows.
> 2012-03-27 15:22:17.220 DEBUG [606360852@qtp-1418257117-3]
> QueryEngine.java:211    SQL2 JOIN executed second branch, took 18 ms.
> 2012-03-27 15:22:17.221 DEBUG [606360852@qtp-1418257117-3]
> QueryEngine.java:168     SQL2 SORT took 0 ms.
> 2012-03-27 15:22:17.222 DEBUG [606360852@qtp-1418257117-3]
> QueryEngine.java:117 SQL2 QUERY execute took 107 ms. native sort is false.
>
> obviously some difference ;)
>
> chregu
>
>
>
> On 27.03.12 13:30, Alex Parvulescu wrote:
> > Hi Christian,
> >
> > can you enable debug logs
> > on org.apache.jackrabbit.core.query.lucene.join.QueryEngine?
> > I'm curious to see what the constraits look like in the big query vs the
> > 2 small ones.
> >
> > This also goes for the join you've mentioned later in the thread, but I
> > just wanted to start with the first query ;)
> >
> > alex
> >
> > On Tue, Mar 27, 2012 at 9:55 AM, Christian Stocker
> > <christian.stocker@liip.ch <ma...@liip.ch>> wrote:
> >
> >     Hi
> >
> >     On 27.03.12 09:49, David Buchmann wrote:
> >     > sorry, my bad. did not read correctly.
> >     > you do have the paranthesis so you did what you wanted to do.
> >     >
> >     > looks like lucene/jackrabbit combine the 2 datasets first and
> filter
> >     > later...
> >     >
> >     > what if you try
> >     >
> >     >
> >     > SELECT * FROM [own:unstructured] AS data
> >     > WHERE
> >     >     data.guid = 'J7B1X' AND ISDESCENDANTNODE(data, '/article')
> >     >   OR
> >     >     data.guid = 'J7B1X' AND ISDESCENDANTNODE(data,
> '/import/article')
> >     > ORDER BY firstImportDate DESC
> >
> >     I tried that and I tried it again now. Same response time as the
> >     original query.
> >
> >     Any hints from someone who knows the internal workings of
> >     jackrabbit/lucene?
> >
> >     chregu
> >
> >     >
> >     > if this is fast, then the jackrabbit query engine is not very
> >     clever...
> >     >
> >     > cheers,david
> >     >
> >     >
> >     > Am 27.03.2012 09:10, schrieb David Buchmann:
> >     >> i think the 2 queries are not equivalent. the first one is
> >     equivalent to
> >     >
> >     >> ...
> >     >> WHERE data.guid = 'J7B1X'
> >     >>   AND (ISDESCENDANTNODE(data, '/article')
> >     >
> >     >> plus
> >     >
> >     >> WHERE
> >     >>  ISDESCENDANTNODE(data, '/import/article')
> >     >
> >     >> (if you want the data.guid = ... to apply to both, you need
> >     paranthesis)
> >     >
> >     >> but if /import/article is almost empty, i still don't see why the
> >     >> combined query should take so long unless jackrabbit/lucene are
> doing
> >     >> something stupid.
> >     >
> >     >> cheers,david
> >     >
> >     >> Am 26.03.2012 22:28, schrieb Christian Stocker:
> >     >>> Hi
> >     >
> >     >>> We have the following search query
> >     >
> >     >
> >     >>> SELECT * FROM [own:unstructured] AS data WHERE data.guid =
> 'J7B1X'
> >     >>>             AND (ISDESCENDANTNODE(data, '/article')
> >     >>>             OR ISDESCENDANTNODE(data, '/import/article')
> >     >>>             )
> >     >>>             ORDER BY firstImportDate DESC
> >     >
> >     >
> >     >>> This query can take quite some time (up to 3 seconds, but it
> >     gets more
> >     >>> and more hte more data we have). In /article there's potentially
> >     a lot
> >     >>> of nodes, in /import/article usually almost nil.
> >     >
> >     >
> >     >>> If we now separate the query into 2:
> >     >
> >     >>> SELECT * FROM [own:unstructured] AS data WHERE data.guid =
> 'J7B1X'
> >     >>>             AND ISDESCENDANTNODE(data, '/article')
> >     >>>             ORDER BY firstImportDate DESC
> >     >
> >     >>> and
> >     >
> >     >>> SELECT * FROM [own:unstructured] AS data WHERE data.guid =
> 'J7B1X'
> >     >>>             AND ISDESCENDANTNODE(data, '/import/article')
> >     >>>             ORDER BY firstImportDate DESC
> >     >
> >     >>> Both queries take approx. 10ms (and return 0 or 1 resultset,
> >     more is not
> >     >>> possible). So quite fast.
> >     >
> >     >>> Can anyone explain to me, why that is and how we could rewrite
> >     the query
> >     >>> to make it fast with a single one as well?
> >     >
> >     >>> Thanks
> >     >
> >     >>> chregu
> >     >
> >     >
> >
> >
>
> --
> Liip AG  //  Feldstrasse 133 //  CH-8004 Zurich
> Tel +41 43 500 39 81 // Mobile +41 76 561 88 60
> www.liip.ch // blog.liip.ch // GnuPG 0x0748D5FE
>
>

Re: Strange Search Performance problem with OR

Posted by Christian Stocker <ch...@liip.ch>.
Hi Alex

unfortunately the debug is not that descriptive (from my POV :))

For the query with the OR


2012-03-27 15:14:44.086 DEBUG [606360852@qtp-1418257117-3]
QueryEngine.java:465   SQL2 SELECT took 6642 ms. selector:
[own:unstructured] AS data, columns: [data.jcr:primaryType], constraint:
(data.guid = 'J7B1X') AND ((ISDESCENDANTNODE(data, [/article])) OR
(ISDESCENDANTNODE(data, [/import/article]))), offset 0, limit 5
2012-03-27 15:14:44.087 DEBUG [606360852@qtp-1418257117-3]
QueryEngine.java:480   SQL2 SORT took 0 ms.
2012-03-27 15:14:44.087 DEBUG [606360852@qtp-1418257117-3]
QueryEngine.java:117 SQL2 QUERY execute took 6643 ms. native sort is false.


For the query without the or

2012-03-27 15:15:44.774 DEBUG [606360852@qtp-1418257117-3]
QueryEngine.java:465   SQL2 SELECT took 5 ms. selector:
[own:unstructured] AS data, columns: [data.jcr:primaryType], constraint:
(data.guid = 'J7B1X') AND (ISDESCENDANTNODE(data, [/article])), offset
0, limit 5
2012-03-27 15:15:44.775 DEBUG [606360852@qtp-1418257117-3]
QueryEngine.java:480   SQL2 SORT took 0 ms.
2012-03-27 15:15:44.775 DEBUG [606360852@qtp-1418257117-3]
QueryEngine.java:117 SQL2 QUERY execute took 6 ms. native sort is false.


For the later with no results:
(or as file https://gist.github.com/761084c44997d6c7ad11)

2012-03-27 15:19:53.406 DEBUG [606360852@qtp-1418257117-3]
QueryEngine.java:393   SQL2 JOIN analysis:
  SQL2 JOIN inner split ->
  +
      SQL2 JOIN source: [own:unstructured] AS data LEFT OUTER JOIN
[own:unstructured] AS referring ON referring.reference = data.[jcr:uuid]
      SQL2 JOIN left constraint:  (((data.[phpcr:class] =
'Own\ApiBundle\Document\Article') AND (data.publication = 'own')) AND
((CONTAINS(data.categories, 'KURZ')) AND (data.departmentSlugs =
'front'))) AND (((NOT (data.permissionPath like 'owns/%')) AND
(data.title IS NOT NULL)) AND ((data.title <> '') AND ((data.teaser IS
NOT NULL) AND (data.teaser <> ''))))
      SQL2 JOIN right constraint: (referring.reference IS NOT NULL) AND
(ISDESCENDANTNODE(referring, [/article/2012/03/26]))
  +
      SQL2 JOIN source: [own:unstructured] AS data LEFT OUTER JOIN
[own:unstructured] AS referring ON referring.reference = data.[jcr:uuid]
      SQL2 JOIN left constraint:  (((data.[phpcr:class] =
'Own\ApiBundle\Document\Article') AND (data.publication = 'own')) AND
((CONTAINS(data.categories, 'KURZ')) AND ((data.departmentSlugs =
'front') AND (NOT (data.permissionPath like 'owns/%'))))) AND
(((data.title IS NOT NULL) AND (data.title <> '')) AND ((data.teaser IS
NOT NULL) AND ((data.teaser <> '') AND (ISDESCENDANTNODE(data,
[/article/2012/03/26])))))
      SQL2 JOIN right constraint: null
2012-03-27 15:19:53.407 DEBUG [606360852@qtp-1418257117-3]
QueryEngine.java:182    SQL2 JOIN execute: there are multiple inner splits.
2012-03-27 15:19:53.414 DEBUG [606360852@qtp-1418257117-3]
QueryEngine.java:465           SQL2 SELECT took 7 ms. selector:
[own:unstructured] AS data, columns: [data.jcr:primaryType], constraint:
(((data.[phpcr:class] = 'Own\ApiBundle\Document\Article') AND
(data.publication = 'own')) AND ((CONTAINS(data.categories, 'KURZ')) AND
(data.departmentSlugs = 'front'))) AND (((NOT (data.permissionPath like
'owns/%')) AND (data.title IS NOT NULL)) AND ((data.title <> '') AND
((data.teaser IS NOT NULL) AND (data.teaser <> '')))), offset 0, limit -1
2012-03-27 15:19:53.414 DEBUG [606360852@qtp-1418257117-3]
QueryEngine.java:480           SQL2 SORT took 0 ms.
2012-03-27 15:19:53.415 DEBUG [606360852@qtp-1418257117-3]
QueryEngine.java:222       SQL2 JOIN LEFT SIDE took 8 ms. fetched 0 rows.
2012-03-27 15:19:53.544 DEBUG [606360852@qtp-1418257117-3]
QueryEngine.java:465           SQL2 SELECT took 129 ms. selector:
[own:unstructured] AS referring, columns: [referring.jcr:primaryType],
constraint: null, offset 0, limit -1
2012-03-27 15:19:53.544 DEBUG [606360852@qtp-1418257117-3]
QueryEngine.java:480           SQL2 SORT took 0 ms.
2012-03-27 15:19:54.259 DEBUG [606360852@qtp-1418257117-3]
QueryEngine.java:465           SQL2 SELECT took 6 ms. selector:
[own:unstructured] AS referring, columns: [referring.jcr:primaryType],
constraint: (referring.reference IS NOT NULL) AND
(ISDESCENDANTNODE(referring, [/article/2012/03/26])), offset 0, limit -1
2012-03-27 15:19:54.260 DEBUG [606360852@qtp-1418257117-3]
QueryEngine.java:480           SQL2 SORT took 0 ms.
2012-03-27 15:19:54.260 DEBUG [606360852@qtp-1418257117-3]
QueryEngine.java:261       SQL2 JOIN RIGHT SIDE took 845 ms. fetched
13055 rows.
2012-03-27 15:19:54.340 DEBUG [606360852@qtp-1418257117-3]
QueryEngine.java:197    SQL2 JOIN executed first branch, took 933 ms.
2012-03-27 15:19:54.346 DEBUG [606360852@qtp-1418257117-3]
QueryEngine.java:465           SQL2 SELECT took 6 ms. selector:
[own:unstructured] AS data, columns: [data.jcr:primaryType], constraint:
(((data.[phpcr:class] = 'Own\ApiBundle\Document\Article') AND
(data.publication = 'own')) AND ((CONTAINS(data.categories, 'KURZ')) AND
((data.departmentSlugs = 'front') AND (NOT (data.permissionPath like
'owns/%'))))) AND (((data.title IS NOT NULL) AND (data.title <> '')) AND
((data.teaser IS NOT NULL) AND ((data.teaser <> '') AND
(ISDESCENDANTNODE(data, [/article/2012/03/26]))))), offset 0, limit -1
2012-03-27 15:19:54.347 DEBUG [606360852@qtp-1418257117-3]
QueryEngine.java:480           SQL2 SORT took 0 ms.
2012-03-27 15:19:54.347 DEBUG [606360852@qtp-1418257117-3]
QueryEngine.java:222       SQL2 JOIN LEFT SIDE took 7 ms. fetched 0 rows.
2012-03-27 15:19:54.412 DEBUG [606360852@qtp-1418257117-3]
QueryEngine.java:465           SQL2 SELECT took 64 ms. selector:
[own:unstructured] AS referring, columns: [referring.jcr:primaryType],
constraint: null, offset 0, limit -1
2012-03-27 15:19:54.412 DEBUG [606360852@qtp-1418257117-3]
QueryEngine.java:480           SQL2 SORT took 0 ms.
2012-03-27 15:19:55.172 DEBUG [606360852@qtp-1418257117-3]
QueryEngine.java:261       SQL2 JOIN RIGHT SIDE took 825 ms. fetched
13055 rows.
2012-03-27 15:19:55.259 DEBUG [606360852@qtp-1418257117-3]
QueryEngine.java:211    SQL2 JOIN executed second branch, took 919 ms.
2012-03-27 15:19:55.259 DEBUG [606360852@qtp-1418257117-3]
QueryEngine.java:168     SQL2 SORT took 0 ms.
2012-03-27 15:19:55.259 DEBUG [606360852@qtp-1418257117-3]
QueryEngine.java:117 SQL2 QUERY execute took 1853 ms. native sort is false.


with results:

(as file https://gist.github.com/c52b2d87558f90a491cc )

2012-03-27 15:22:17.114 DEBUG [606360852@qtp-1418257117-3]
QueryEngine.java:393   SQL2 JOIN analysis:
  SQL2 JOIN inner split ->
  +
      SQL2 JOIN source: [own:unstructured] AS data LEFT OUTER JOIN
[own:unstructured] AS referring ON referring.reference = data.[jcr:uuid]
      SQL2 JOIN left constraint:  (((data.[phpcr:class] =
'Own\ApiBundle\Document\Article') AND (data.publication = 'own')) AND
((CONTAINS(data.categories, 'KURZ')) AND (data.departmentSlugs =
'international'))) AND (((NOT (data.permissionPath like 'owns/%')) AND
(data.title IS NOT NULL)) AND ((data.title <> '') AND ((data.teaser IS
NOT NULL) AND (data.teaser <> ''))))
      SQL2 JOIN right constraint: (referring.reference IS NOT NULL) AND
(ISDESCENDANTNODE(referring, [/article/2012/03/26]))
  +
      SQL2 JOIN source: [own:unstructured] AS data LEFT OUTER JOIN
[own:unstructured] AS referring ON referring.reference = data.[jcr:uuid]
      SQL2 JOIN left constraint:  (((data.[phpcr:class] =
'Own\ApiBundle\Document\Article') AND (data.publication = 'own')) AND
((CONTAINS(data.categories, 'KURZ')) AND ((data.departmentSlugs =
'international') AND (NOT (data.permissionPath like 'owns/%'))))) AND
(((data.title IS NOT NULL) AND (data.title <> '')) AND ((data.teaser IS
NOT NULL) AND ((data.teaser <> '') AND (ISDESCENDANTNODE(data,
[/article/2012/03/26])))))
      SQL2 JOIN right constraint: null
2012-03-27 15:22:17.115 DEBUG [606360852@qtp-1418257117-3]
QueryEngine.java:182    SQL2 JOIN execute: there are multiple inner splits.
2012-03-27 15:22:17.128 DEBUG [606360852@qtp-1418257117-3]
QueryEngine.java:465           SQL2 SELECT took 13 ms. selector:
[own:unstructured] AS data, columns: [data.jcr:primaryType], constraint:
(((data.[phpcr:class] = 'Own\ApiBundle\Document\Article') AND
(data.publication = 'own')) AND ((CONTAINS(data.categories, 'KURZ')) AND
(data.departmentSlugs = 'international'))) AND (((NOT
(data.permissionPath like 'owns/%')) AND (data.title IS NOT NULL)) AND
((data.title <> '') AND ((data.teaser IS NOT NULL) AND (data.teaser <>
'')))), offset 0, limit -1
2012-03-27 15:22:17.128 DEBUG [606360852@qtp-1418257117-3]
QueryEngine.java:480           SQL2 SORT took 0 ms.
2012-03-27 15:22:17.134 DEBUG [606360852@qtp-1418257117-3]
QueryEngine.java:222       SQL2 JOIN LEFT SIDE took 18 ms. fetched 145 rows.
2012-03-27 15:22:17.183 DEBUG [606360852@qtp-1418257117-3]
QueryEngine.java:465           SQL2 SELECT took 45 ms. selector:
[own:unstructured] AS referring, columns: [referring.jcr:primaryType],
constraint: (((((((referring.reference =
'dabef043-d963-4c25-8b1b-d8db8335fc14') OR (referring.reference =
'360178d6-4d06-480e-99f5-9936e3d0285e')) OR ((referring.reference =
'64a72ae9-a5c0-45cb-85e1-f7cb403f851d') OR (referring.reference =
'fb13c508-3751-43fd-b2b0-74bb52688f6a'))) OR (((referring.reference =
'f3cb740d-0503-4cf7-b725-6ac2b071e627') OR (referring.reference =
'e8896428-0a90-4f39-815e-2034f9821fed')) OR ((referring.reference =
'363032f7-4576-492c-9778-bad13de1b83e') OR ((referring.reference =
'9d3b1524-e1a9-4656-9efb-1734ae20d8c1') OR (referring.reference =
'a3664b9c-feba-4b50-80c9-b15de8e00f0d'))))) OR ((((referring.reference =
'5626d03a-7056-4369-91c2-95674976954f') OR (referring.reference =
'b0a8165c-647a-427b-baeb-6bb8095b2e25')) OR ((referring.reference =
'416b72c7-3d45-46ed-81f4-bb5665765e1f') OR (referring.reference =
'e543b2fd-9606-4676-bea4-80dc6c0ecfdc'))) OR (((referring.reference =
'1b46f1bf-2121-492d-8886-b1271496a4e4') OR (referring.reference =
'a71a5af1-41d0-4a9b-9590-7355bfb6c8fe')) OR ((referring.reference =
'fc4448d5-6270-40d4-9a7e-ffaa32bbf0e4') OR ((referring.reference =
'f6c49452-3a55-4bd0-929f-590652fbca62') OR (referring.reference =
'03fbc4a5-6fa1-442f-98c3-21e2c1626eab')))))) OR (((((referring.reference
= '11e8f268-7137-4c12-8a2c-d665fc9bc8c1') OR (referring.reference =
'e6a7fb91-1a47-4c96-ab2b-d99e17fe1058')) OR ((referring.reference =
'3f590d84-3fdf-46c8-ba24-edff3c18d380') OR (referring.reference =
'dd390426-71b9-442b-b21d-f781d6f92108'))) OR (((referring.reference =
'0553667e-8fd8-475d-9c37-aa32059d6ca3') OR (referring.reference =
'85a88a31-354b-484c-8cd8-49ff964b3a31')) OR ((referring.reference =
'5796b1a0-9a48-4684-bdcd-ca81a4a668b2') OR ((referring.reference =
'8c1556f5-a1ac-48b0-b378-9d49df208a06') OR (referring.reference =
'cf3415c4-0eab-44d5-84f3-6cb81a95275f'))))) OR ((((referring.reference =
'52ae2f47-9e5f-4e6b-8f8a-b02db35ef4fb') OR (referring.reference =
'793a47e6-4903-46c5-9a4b-93942ac052b6')) OR ((referring.reference =
'd1d18eab-749e-40aa-895a-669b7554f6ec') OR (referring.reference =
'14361658-a4d1-43af-a4b8-10f0cfdab623'))) OR (((referring.reference =
'3307515f-0943-481a-b87e-7c20f734536f') OR (referring.reference =
'1c72c6c1-eb29-4ace-9fde-e1372ee21a6a')) OR ((referring.reference =
'35c502cb-9456-4a1f-91ca-18a8057c0c72') OR ((referring.reference =
'f3d7dd59-3a27-4a1e-b991-a28452695ed0') OR (referring.reference =
'5953a950-6def-4832-9db2-4641ede368ef'))))))) OR
((((((referring.reference = '9c86d524-3ff2-4c10-95a2-449fb751711a') OR
(referring.reference = '22cf7cca-90cb-4f3f-b0ac-338f8da9c813')) OR
((referring.reference = '302595c5-fce5-42ba-ba88-466a1d234458') OR
(referring.reference = 'a7fba88b-1f16-4ac2-91b5-3dfc2084ee7c'))) OR
(((referring.reference = 'd5b4f2e2-3232-402d-950e-88a27cc5944d') OR
(referring.reference = 'f5123108-19af-48ee-9922-90f9830486fc')) OR
((referring.reference = '221554f2-a8b8-47c6-8466-71d79d3bd763') OR
((referring.reference = '0ff48319-b415-43c6-aafa-8b56f8b556d9') OR
(referring.reference = 'c2839883-7fc0-439e-aba5-309cf95f0117'))))) OR
((((referring.reference = 'c3c9ed93-a5c7-4a40-9f19-90595554da41') OR
(referring.reference = '356909e9-25f7-46c3-9a95-dcedfc583fe7')) OR
((referring.reference = '770466bd-2917-433d-8106-2a00d4449a02') OR
(referring.reference = 'f8ebf6bb-a1b2-4334-af23-634e962cc2ca'))) OR
(((referring.reference = '75086103-ed01-4711-acb1-76f6f4305a28') OR
(referring.reference = '602f4c8d-99b1-45b7-9096-bc047097f840')) OR
((referring.reference = 'd97de87a-a5c6-4a25-8c45-550d6bcd5cf2') OR
((referring.reference = 'f1b31a93-bec1-4d55-bcd1-b5bbfdeffc8b') OR
(referring.reference = 'f7104878-40b5-4afb-90b0-64bdcbc39258')))))) OR
(((((referring.reference = '4509d2ed-f95f-45f3-adb6-3c60b28721a8') OR
(referring.reference = 'ea23a845-a744-41d3-8ccf-e18592f20c2c')) OR
((referring.reference = '7a0837b6-989b-49f9-8d1b-7ba1bee66934') OR
(referring.reference = '705288d8-1ffd-4d90-b066-a503e046d009'))) OR
(((referring.reference = '8e693e6c-c29f-44aa-a734-0b94f4035995') OR
(referring.reference = 'e126b2f3-23d9-488e-a0b9-6c234b3fad71')) OR
((referring.reference = '2c3e7ca8-92fa-4b0a-875d-1e3a9b6cc9ff') OR
((referring.reference = '92eca2e3-cff0-4ec6-952a-bac3fa72befb') OR
(referring.reference = 'ceeb5abf-a47c-4a2d-b40b-246a5c979d05'))))) OR
((((referring.reference = 'db2fc503-2685-437b-84ec-360bcdd25617') OR
(referring.reference = 'fb64a059-12a4-4204-86bc-3a484da14962')) OR
((referring.reference = '8219a54b-25ed-4531-897b-1b7d98c86236') OR
(referring.reference = '66272d61-d4e9-48d1-88c4-853d8337cc37'))) OR
(((referring.reference = '486bd99d-e20d-413e-b7a5-65bb8c0a70f2') OR
(referring.reference = '7c75e0cc-27d9-4979-8c10-04bcf68786a4')) OR
((referring.reference = 'b3ff705b-e5b9-4d96-9263-b8e5f7a7c9e4') OR
((referring.reference = 'b509f992-a8d2-4249-906b-f0f589781f12') OR
(referring.reference = '422c0683-e785-43a5-8128-1de3f08348aa')))))))) OR
(((((((referring.reference = '970f35bd-e8d3-49fc-8e63-264bb395fba7') OR
(referring.reference = '1dcc2ad7-c0e9-48f8-83c4-e31c2bf272df')) OR
((referring.reference = '43ae876f-1307-4c4e-8d2b-8ebe781f775b') OR
(referring.reference = '4ac9e304-15e3-4b19-8406-51a39bfdcc6a'))) OR
(((referring.reference = 'bf0c9f9d-43de-4aa3-9177-bd6ad6dabf0d') OR
(referring.reference = '4627e7bd-175d-4680-8b18-9856145534be')) OR
((referring.reference = 'd3e16650-29f2-4681-9fb3-2be83ae7adb2') OR
((referring.reference = 'a6859cb7-3f9f-49f5-9d6f-47246c484eec') OR
(referring.reference = '2974618a-bbb6-4bae-a0cb-e3e82babee05'))))) OR
((((referring.reference = 'ab4cc140-2c48-432e-986b-af9536c3809d') OR
(referring.reference = '543987d1-c6fa-47e2-86db-b0926323edd0')) OR
((referring.reference = '7f9149d2-bdc7-4394-9efe-aa3cd1ac201c') OR
(referring.reference = 'd5fcf8f1-a06d-42ee-a9ff-7b778457d56c'))) OR
(((referring.reference = 'f9ff49ca-dc3a-4820-a421-2d41cd4b5083') OR
(referring.reference = 'a18ac7c1-e100-444a-8d50-1631ac900a76')) OR
((referring.reference = '417bf61c-696e-4a18-8792-1353ebd3800e') OR
((referring.reference = '7ce8a1d4-62cd-4e66-bcf0-f6fd3276c767') OR
(referring.reference = '3be4cf2c-00a5-4f19-a846-925c02c4e6a2')))))) OR
(((((referring.reference = '70afe4aa-0ff9-4336-a030-f6d17b631865') OR
(referring.reference = '48d84382-b251-484d-a061-b2f3acc940f1')) OR
((referring.reference = 'c2d2c2fd-4a37-4542-9cf2-0ab2ee85f56c') OR
(referring.reference = 'dc1972a8-30fa-4194-8640-bfc1d15b3226'))) OR
(((referring.reference = '10f1b4c7-2fbd-4d37-8765-324c22c1eb78') OR
(referring.reference = 'f5878662-8b75-4b56-9bf2-ddad05863b6b')) OR
((referring.reference = 'dde13542-d444-445c-a260-735f44e1c5a5') OR
((referring.reference = 'ee668110-7983-4f78-85bf-83396544a995') OR
(referring.reference = 'd5fddf5b-75c4-43a1-9f66-6b2bd1642b1d'))))) OR
((((referring.reference = 'a7e08817-4da5-450a-8883-642358cbdee6') OR
(referring.reference = '7247e111-1096-43d2-a842-12194199f73f')) OR
((referring.reference = 'ef8e1445-6995-4955-852f-7e8171f69dd5') OR
(referring.reference = 'e56b971d-5217-4677-8cd3-d9aed2e27868'))) OR
(((referring.reference = '4b167857-8f64-443d-96d5-d4b0f9230f8f') OR
(referring.reference = '56474a02-ef78-48da-bbda-a3976b766e82')) OR
((referring.reference = 'dd45ab8c-aaee-48c0-88f2-1ebbc07d0ef4') OR
((referring.reference = 'b5c6e3be-9a3e-4225-88a9-db73279f3bea') OR
(referring.reference = '759204cc-95e0-47c7-a353-0aa07f2925bc'))))))) OR
((((((referring.reference = 'fad5544c-25cd-4d40-9780-a640cff4c34a') OR
(referring.reference = 'e805d4b0-eef1-4902-a57c-714eacf98aec')) OR
((referring.reference = '32e12819-f842-4218-a081-73268e0248af') OR
(referring.reference = 'dd926ef4-66de-4268-b7a7-9dd22dc7822e'))) OR
(((referring.reference = 'fb1f114e-5d41-419f-b1d6-469b52584d8c') OR
(referring.reference = 'f0f81bf2-2936-4ad0-bd06-b8f77c08082b')) OR
((referring.reference = 'a8e465b0-6ac3-4c71-9c05-0d0db5d4ed95') OR
((referring.reference = '07ad03ad-22b2-4516-9ceb-4828799fa7d0') OR
(referring.reference = '85c7119b-05ff-462c-953e-8f7d204fbcc7'))))) OR
((((referring.reference = '7a9a7382-3f09-4b16-a7f7-8891936f89d3') OR
(referring.reference = '494e2684-dd23-4ad0-b877-45072d5dabb0')) OR
((referring.reference = 'f75fbcb6-756d-4289-b552-05e11ff724e8') OR
(referring.reference = '5f584bd6-178b-47ef-8a95-aef199221b70'))) OR
(((referring.reference = '30a56660-eadc-43db-b689-69390dacadf3') OR
(referring.reference = 'c5ef124c-955d-473a-9592-924ebeaf4cc0')) OR
((referring.reference = 'aedf8dee-44f5-44aa-8b94-0f0811487c24') OR
((referring.reference = 'f07e2d32-ced6-418c-80cd-473cdae38b9f') OR
(referring.reference = '7def13bb-e269-48dd-aebe-874fd1504776')))))) OR
(((((referring.reference = '73906c23-27fd-424d-84b5-677ee5528e7a') OR
(referring.reference = '7fb03b21-3dd1-42bc-8d66-81c5c8df4ba6')) OR
((referring.reference = 'dc129f72-7fae-45fe-89cf-c5d7754a23a8') OR
(referring.reference = 'fa8c042f-055c-4453-942f-e6cd489fa0e4'))) OR
(((referring.reference = '04dea2e3-8a18-4ab0-9d38-a506d53be0cf') OR
(referring.reference = '18eb65d7-2e8b-4935-bb1b-4b7c493f9dea')) OR
((referring.reference = '4c7171cb-caae-4747-9e44-0f01e8300b01') OR
((referring.reference = '4db5ac73-2277-4be2-9fc0-f407d0aa4a90') OR
(referring.reference = '764811a0-5c44-4c9c-8162-5be67a046771'))))) OR
((((referring.reference = '400f0efa-c1d2-416b-82f2-e5208e1152b1') OR
(referring.reference = '1fa1d92a-4af1-4db6-8bd7-ad38b762ae72')) OR
((referring.reference = '6b3a9b45-040f-49a1-ba64-e13d5433b74e') OR
((referring.reference = '9be29c73-8164-4be0-8b5f-34e889718a89') OR
(referring.reference = '9f72cac4-3fb6-456b-9a8d-77a391d48cbb')))) OR
(((referring.reference = '3c6d886e-9fb3-4080-b633-c1e1120b9da1') OR
(referring.reference = 'e2166375-5bf1-432e-a348-6cf40d97c6ae')) OR
((referring.reference = '9d458e27-fbf3-4595-8739-61ec17d428c5') OR
((referring.reference = '3e8da13a-e971-4720-be22-f6cb859b1b5b') OR
(referring.reference = '36b33131-03a7-46ed-987c-2d03c20cfe92')))))))),
offset 0, limit -1
2012-03-27 15:22:17.184 DEBUG [606360852@qtp-1418257117-3]
QueryEngine.java:480           SQL2 SORT took 0 ms.
2012-03-27 15:22:17.200 DEBUG [606360852@qtp-1418257117-3]
QueryEngine.java:465           SQL2 SELECT took 14 ms. selector:
[own:unstructured] AS referring, columns: [referring.jcr:primaryType],
constraint: ((((((((referring.reference =
'dabef043-d963-4c25-8b1b-d8db8335fc14') OR (referring.reference =
'360178d6-4d06-480e-99f5-9936e3d0285e')) OR ((referring.reference =
'64a72ae9-a5c0-45cb-85e1-f7cb403f851d') OR (referring.reference =
'fb13c508-3751-43fd-b2b0-74bb52688f6a'))) OR (((referring.reference =
'f3cb740d-0503-4cf7-b725-6ac2b071e627') OR (referring.reference =
'e8896428-0a90-4f39-815e-2034f9821fed')) OR ((referring.reference =
'363032f7-4576-492c-9778-bad13de1b83e') OR ((referring.reference =
'9d3b1524-e1a9-4656-9efb-1734ae20d8c1') OR (referring.reference =
'a3664b9c-feba-4b50-80c9-b15de8e00f0d'))))) OR ((((referring.reference =
'5626d03a-7056-4369-91c2-95674976954f') OR (referring.reference =
'b0a8165c-647a-427b-baeb-6bb8095b2e25')) OR ((referring.reference =
'416b72c7-3d45-46ed-81f4-bb5665765e1f') OR (referring.reference =
'e543b2fd-9606-4676-bea4-80dc6c0ecfdc'))) OR (((referring.reference =
'1b46f1bf-2121-492d-8886-b1271496a4e4') OR (referring.reference =
'a71a5af1-41d0-4a9b-9590-7355bfb6c8fe')) OR ((referring.reference =
'fc4448d5-6270-40d4-9a7e-ffaa32bbf0e4') OR ((referring.reference =
'f6c49452-3a55-4bd0-929f-590652fbca62') OR (referring.reference =
'03fbc4a5-6fa1-442f-98c3-21e2c1626eab')))))) OR (((((referring.reference
= '11e8f268-7137-4c12-8a2c-d665fc9bc8c1') OR (referring.reference =
'e6a7fb91-1a47-4c96-ab2b-d99e17fe1058')) OR ((referring.reference =
'3f590d84-3fdf-46c8-ba24-edff3c18d380') OR (referring.reference =
'dd390426-71b9-442b-b21d-f781d6f92108'))) OR (((referring.reference =
'0553667e-8fd8-475d-9c37-aa32059d6ca3') OR (referring.reference =
'85a88a31-354b-484c-8cd8-49ff964b3a31')) OR ((referring.reference =
'5796b1a0-9a48-4684-bdcd-ca81a4a668b2') OR ((referring.reference =
'8c1556f5-a1ac-48b0-b378-9d49df208a06') OR (referring.reference =
'cf3415c4-0eab-44d5-84f3-6cb81a95275f'))))) OR ((((referring.reference =
'52ae2f47-9e5f-4e6b-8f8a-b02db35ef4fb') OR (referring.reference =
'793a47e6-4903-46c5-9a4b-93942ac052b6')) OR ((referring.reference =
'd1d18eab-749e-40aa-895a-669b7554f6ec') OR (referring.reference =
'14361658-a4d1-43af-a4b8-10f0cfdab623'))) OR (((referring.reference =
'3307515f-0943-481a-b87e-7c20f734536f') OR (referring.reference =
'1c72c6c1-eb29-4ace-9fde-e1372ee21a6a')) OR ((referring.reference =
'35c502cb-9456-4a1f-91ca-18a8057c0c72') OR ((referring.reference =
'f3d7dd59-3a27-4a1e-b991-a28452695ed0') OR (referring.reference =
'5953a950-6def-4832-9db2-4641ede368ef'))))))) OR
((((((referring.reference = '9c86d524-3ff2-4c10-95a2-449fb751711a') OR
(referring.reference = '22cf7cca-90cb-4f3f-b0ac-338f8da9c813')) OR
((referring.reference = '302595c5-fce5-42ba-ba88-466a1d234458') OR
(referring.reference = 'a7fba88b-1f16-4ac2-91b5-3dfc2084ee7c'))) OR
(((referring.reference = 'd5b4f2e2-3232-402d-950e-88a27cc5944d') OR
(referring.reference = 'f5123108-19af-48ee-9922-90f9830486fc')) OR
((referring.reference = '221554f2-a8b8-47c6-8466-71d79d3bd763') OR
((referring.reference = '0ff48319-b415-43c6-aafa-8b56f8b556d9') OR
(referring.reference = 'c2839883-7fc0-439e-aba5-309cf95f0117'))))) OR
((((referring.reference = 'c3c9ed93-a5c7-4a40-9f19-90595554da41') OR
(referring.reference = '356909e9-25f7-46c3-9a95-dcedfc583fe7')) OR
((referring.reference = '770466bd-2917-433d-8106-2a00d4449a02') OR
(referring.reference = 'f8ebf6bb-a1b2-4334-af23-634e962cc2ca'))) OR
(((referring.reference = '75086103-ed01-4711-acb1-76f6f4305a28') OR
(referring.reference = '602f4c8d-99b1-45b7-9096-bc047097f840')) OR
((referring.reference = 'd97de87a-a5c6-4a25-8c45-550d6bcd5cf2') OR
((referring.reference = 'f1b31a93-bec1-4d55-bcd1-b5bbfdeffc8b') OR
(referring.reference = 'f7104878-40b5-4afb-90b0-64bdcbc39258')))))) OR
(((((referring.reference = '4509d2ed-f95f-45f3-adb6-3c60b28721a8') OR
(referring.reference = 'ea23a845-a744-41d3-8ccf-e18592f20c2c')) OR
((referring.reference = '7a0837b6-989b-49f9-8d1b-7ba1bee66934') OR
(referring.reference = '705288d8-1ffd-4d90-b066-a503e046d009'))) OR
(((referring.reference = '8e693e6c-c29f-44aa-a734-0b94f4035995') OR
(referring.reference = 'e126b2f3-23d9-488e-a0b9-6c234b3fad71')) OR
((referring.reference = '2c3e7ca8-92fa-4b0a-875d-1e3a9b6cc9ff') OR
((referring.reference = '92eca2e3-cff0-4ec6-952a-bac3fa72befb') OR
(referring.reference = 'ceeb5abf-a47c-4a2d-b40b-246a5c979d05'))))) OR
((((referring.reference = 'db2fc503-2685-437b-84ec-360bcdd25617') OR
(referring.reference = 'fb64a059-12a4-4204-86bc-3a484da14962')) OR
((referring.reference = '8219a54b-25ed-4531-897b-1b7d98c86236') OR
(referring.reference = '66272d61-d4e9-48d1-88c4-853d8337cc37'))) OR
(((referring.reference = '486bd99d-e20d-413e-b7a5-65bb8c0a70f2') OR
(referring.reference = '7c75e0cc-27d9-4979-8c10-04bcf68786a4')) OR
((referring.reference = 'b3ff705b-e5b9-4d96-9263-b8e5f7a7c9e4') OR
((referring.reference = 'b509f992-a8d2-4249-906b-f0f589781f12') OR
(referring.reference = '422c0683-e785-43a5-8128-1de3f08348aa')))))))) OR
(((((((referring.reference = '970f35bd-e8d3-49fc-8e63-264bb395fba7') OR
(referring.reference = '1dcc2ad7-c0e9-48f8-83c4-e31c2bf272df')) OR
((referring.reference = '43ae876f-1307-4c4e-8d2b-8ebe781f775b') OR
(referring.reference = '4ac9e304-15e3-4b19-8406-51a39bfdcc6a'))) OR
(((referring.reference = 'bf0c9f9d-43de-4aa3-9177-bd6ad6dabf0d') OR
(referring.reference = '4627e7bd-175d-4680-8b18-9856145534be')) OR
((referring.reference = 'd3e16650-29f2-4681-9fb3-2be83ae7adb2') OR
((referring.reference = 'a6859cb7-3f9f-49f5-9d6f-47246c484eec') OR
(referring.reference = '2974618a-bbb6-4bae-a0cb-e3e82babee05'))))) OR
((((referring.reference = 'ab4cc140-2c48-432e-986b-af9536c3809d') OR
(referring.reference = '543987d1-c6fa-47e2-86db-b0926323edd0')) OR
((referring.reference = '7f9149d2-bdc7-4394-9efe-aa3cd1ac201c') OR
(referring.reference = 'd5fcf8f1-a06d-42ee-a9ff-7b778457d56c'))) OR
(((referring.reference = 'f9ff49ca-dc3a-4820-a421-2d41cd4b5083') OR
(referring.reference = 'a18ac7c1-e100-444a-8d50-1631ac900a76')) OR
((referring.reference = '417bf61c-696e-4a18-8792-1353ebd3800e') OR
((referring.reference = '7ce8a1d4-62cd-4e66-bcf0-f6fd3276c767') OR
(referring.reference = '3be4cf2c-00a5-4f19-a846-925c02c4e6a2')))))) OR
(((((referring.reference = '70afe4aa-0ff9-4336-a030-f6d17b631865') OR
(referring.reference = '48d84382-b251-484d-a061-b2f3acc940f1')) OR
((referring.reference = 'c2d2c2fd-4a37-4542-9cf2-0ab2ee85f56c') OR
(referring.reference = 'dc1972a8-30fa-4194-8640-bfc1d15b3226'))) OR
(((referring.reference = '10f1b4c7-2fbd-4d37-8765-324c22c1eb78') OR
(referring.reference = 'f5878662-8b75-4b56-9bf2-ddad05863b6b')) OR
((referring.reference = 'dde13542-d444-445c-a260-735f44e1c5a5') OR
((referring.reference = 'ee668110-7983-4f78-85bf-83396544a995') OR
(referring.reference = 'd5fddf5b-75c4-43a1-9f66-6b2bd1642b1d'))))) OR
((((referring.reference = 'a7e08817-4da5-450a-8883-642358cbdee6') OR
(referring.reference = '7247e111-1096-43d2-a842-12194199f73f')) OR
((referring.reference = 'ef8e1445-6995-4955-852f-7e8171f69dd5') OR
(referring.reference = 'e56b971d-5217-4677-8cd3-d9aed2e27868'))) OR
(((referring.reference = '4b167857-8f64-443d-96d5-d4b0f9230f8f') OR
(referring.reference = '56474a02-ef78-48da-bbda-a3976b766e82')) OR
((referring.reference = 'dd45ab8c-aaee-48c0-88f2-1ebbc07d0ef4') OR
((referring.reference = 'b5c6e3be-9a3e-4225-88a9-db73279f3bea') OR
(referring.reference = '759204cc-95e0-47c7-a353-0aa07f2925bc'))))))) OR
((((((referring.reference = 'fad5544c-25cd-4d40-9780-a640cff4c34a') OR
(referring.reference = 'e805d4b0-eef1-4902-a57c-714eacf98aec')) OR
((referring.reference = '32e12819-f842-4218-a081-73268e0248af') OR
(referring.reference = 'dd926ef4-66de-4268-b7a7-9dd22dc7822e'))) OR
(((referring.reference = 'fb1f114e-5d41-419f-b1d6-469b52584d8c') OR
(referring.reference = 'f0f81bf2-2936-4ad0-bd06-b8f77c08082b')) OR
((referring.reference = 'a8e465b0-6ac3-4c71-9c05-0d0db5d4ed95') OR
((referring.reference = '07ad03ad-22b2-4516-9ceb-4828799fa7d0') OR
(referring.reference = '85c7119b-05ff-462c-953e-8f7d204fbcc7'))))) OR
((((referring.reference = '7a9a7382-3f09-4b16-a7f7-8891936f89d3') OR
(referring.reference = '494e2684-dd23-4ad0-b877-45072d5dabb0')) OR
((referring.reference = 'f75fbcb6-756d-4289-b552-05e11ff724e8') OR
(referring.reference = '5f584bd6-178b-47ef-8a95-aef199221b70'))) OR
(((referring.reference = '30a56660-eadc-43db-b689-69390dacadf3') OR
(referring.reference = 'c5ef124c-955d-473a-9592-924ebeaf4cc0')) OR
((referring.reference = 'aedf8dee-44f5-44aa-8b94-0f0811487c24') OR
((referring.reference = 'f07e2d32-ced6-418c-80cd-473cdae38b9f') OR
(referring.reference = '7def13bb-e269-48dd-aebe-874fd1504776')))))) OR
(((((referring.reference = '73906c23-27fd-424d-84b5-677ee5528e7a') OR
(referring.reference = '7fb03b21-3dd1-42bc-8d66-81c5c8df4ba6')) OR
((referring.reference = 'dc129f72-7fae-45fe-89cf-c5d7754a23a8') OR
(referring.reference = 'fa8c042f-055c-4453-942f-e6cd489fa0e4'))) OR
(((referring.reference = '04dea2e3-8a18-4ab0-9d38-a506d53be0cf') OR
(referring.reference = '18eb65d7-2e8b-4935-bb1b-4b7c493f9dea')) OR
((referring.reference = '4c7171cb-caae-4747-9e44-0f01e8300b01') OR
((referring.reference = '4db5ac73-2277-4be2-9fc0-f407d0aa4a90') OR
(referring.reference = '764811a0-5c44-4c9c-8162-5be67a046771'))))) OR
((((referring.reference = '400f0efa-c1d2-416b-82f2-e5208e1152b1') OR
(referring.reference = '1fa1d92a-4af1-4db6-8bd7-ad38b762ae72')) OR
((referring.reference = '6b3a9b45-040f-49a1-ba64-e13d5433b74e') OR
((referring.reference = '9be29c73-8164-4be0-8b5f-34e889718a89') OR
(referring.reference = '9f72cac4-3fb6-456b-9a8d-77a391d48cbb')))) OR
(((referring.reference = '3c6d886e-9fb3-4080-b633-c1e1120b9da1') OR
(referring.reference = 'e2166375-5bf1-432e-a348-6cf40d97c6ae')) OR
((referring.reference = '9d458e27-fbf3-4595-8739-61ec17d428c5') OR
((referring.reference = '3e8da13a-e971-4720-be22-f6cb859b1b5b') OR
(referring.reference = '36b33131-03a7-46ed-987c-2d03c20cfe92')))))))))
AND ((referring.reference IS NOT NULL) AND (ISDESCENDANTNODE(referring,
[/article/2012/03/26]))), offset 0, limit -1
2012-03-27 15:22:17.201 DEBUG [606360852@qtp-1418257117-3]
QueryEngine.java:480           SQL2 SORT took 0 ms.
2012-03-27 15:22:17.201 DEBUG [606360852@qtp-1418257117-3]
QueryEngine.java:261       SQL2 JOIN RIGHT SIDE took 67 ms. fetched 0 rows.
2012-03-27 15:22:17.202 DEBUG [606360852@qtp-1418257117-3]
QueryEngine.java:197    SQL2 JOIN executed first branch, took 87 ms.
2012-03-27 15:22:17.214 DEBUG [606360852@qtp-1418257117-3]
QueryEngine.java:465           SQL2 SELECT took 11 ms. selector:
[own:unstructured] AS data, columns: [data.jcr:primaryType], constraint:
(((data.[phpcr:class] = 'Own\ApiBundle\Document\Article') AND
(data.publication = 'own')) AND ((CONTAINS(data.categories, 'KURZ')) AND
((data.departmentSlugs = 'international') AND (NOT (data.permissionPath
like 'owns/%'))))) AND (((data.title IS NOT NULL) AND (data.title <>
'')) AND ((data.teaser IS NOT NULL) AND ((data.teaser <> '') AND
(ISDESCENDANTNODE(data, [/article/2012/03/26]))))), offset 0, limit -1
2012-03-27 15:22:17.214 DEBUG [606360852@qtp-1418257117-3]
QueryEngine.java:480           SQL2 SORT took 0 ms.
2012-03-27 15:22:17.215 DEBUG [606360852@qtp-1418257117-3]
QueryEngine.java:222       SQL2 JOIN LEFT SIDE took 13 ms. fetched 7 rows.
2012-03-27 15:22:17.218 DEBUG [606360852@qtp-1418257117-3]
QueryEngine.java:465           SQL2 SELECT took 3 ms. selector:
[own:unstructured] AS referring, columns: [referring.jcr:primaryType],
constraint: ((referring.reference =
'221554f2-a8b8-47c6-8466-71d79d3bd763') OR ((referring.reference =
'07ad03ad-22b2-4516-9ceb-4828799fa7d0') OR (referring.reference =
'85c7119b-05ff-462c-953e-8f7d204fbcc7'))) OR (((referring.reference =
'6b3a9b45-040f-49a1-ba64-e13d5433b74e') OR (referring.reference =
'dc129f72-7fae-45fe-89cf-c5d7754a23a8')) OR ((referring.reference =
'75086103-ed01-4711-acb1-76f6f4305a28') OR (referring.reference =
'f1b31a93-bec1-4d55-bcd1-b5bbfdeffc8b'))), offset 0, limit -1
2012-03-27 15:22:17.218 DEBUG [606360852@qtp-1418257117-3]
QueryEngine.java:480           SQL2 SORT took 0 ms.
2012-03-27 15:22:17.219 DEBUG [606360852@qtp-1418257117-3]
QueryEngine.java:261       SQL2 JOIN RIGHT SIDE took 4 ms. fetched 0 rows.
2012-03-27 15:22:17.220 DEBUG [606360852@qtp-1418257117-3]
QueryEngine.java:211    SQL2 JOIN executed second branch, took 18 ms.
2012-03-27 15:22:17.221 DEBUG [606360852@qtp-1418257117-3]
QueryEngine.java:168     SQL2 SORT took 0 ms.
2012-03-27 15:22:17.222 DEBUG [606360852@qtp-1418257117-3]
QueryEngine.java:117 SQL2 QUERY execute took 107 ms. native sort is false.

obviously some difference ;)

chregu



On 27.03.12 13:30, Alex Parvulescu wrote:
> Hi Christian,
> 
> can you enable debug logs
> on org.apache.jackrabbit.core.query.lucene.join.QueryEngine?
> I'm curious to see what the constraits look like in the big query vs the
> 2 small ones.
> 
> This also goes for the join you've mentioned later in the thread, but I
> just wanted to start with the first query ;)
> 
> alex
> 
> On Tue, Mar 27, 2012 at 9:55 AM, Christian Stocker
> <christian.stocker@liip.ch <ma...@liip.ch>> wrote:
> 
>     Hi
> 
>     On 27.03.12 09:49, David Buchmann wrote:
>     > sorry, my bad. did not read correctly.
>     > you do have the paranthesis so you did what you wanted to do.
>     >
>     > looks like lucene/jackrabbit combine the 2 datasets first and filter
>     > later...
>     >
>     > what if you try
>     >
>     >
>     > SELECT * FROM [own:unstructured] AS data
>     > WHERE
>     >     data.guid = 'J7B1X' AND ISDESCENDANTNODE(data, '/article')
>     >   OR
>     >     data.guid = 'J7B1X' AND ISDESCENDANTNODE(data, '/import/article')
>     > ORDER BY firstImportDate DESC
> 
>     I tried that and I tried it again now. Same response time as the
>     original query.
> 
>     Any hints from someone who knows the internal workings of
>     jackrabbit/lucene?
> 
>     chregu
> 
>     >
>     > if this is fast, then the jackrabbit query engine is not very
>     clever...
>     >
>     > cheers,david
>     >
>     >
>     > Am 27.03.2012 09:10, schrieb David Buchmann:
>     >> i think the 2 queries are not equivalent. the first one is
>     equivalent to
>     >
>     >> ...
>     >> WHERE data.guid = 'J7B1X'
>     >>   AND (ISDESCENDANTNODE(data, '/article')
>     >
>     >> plus
>     >
>     >> WHERE
>     >>  ISDESCENDANTNODE(data, '/import/article')
>     >
>     >> (if you want the data.guid = ... to apply to both, you need
>     paranthesis)
>     >
>     >> but if /import/article is almost empty, i still don't see why the
>     >> combined query should take so long unless jackrabbit/lucene are doing
>     >> something stupid.
>     >
>     >> cheers,david
>     >
>     >> Am 26.03.2012 22:28, schrieb Christian Stocker:
>     >>> Hi
>     >
>     >>> We have the following search query
>     >
>     >
>     >>> SELECT * FROM [own:unstructured] AS data WHERE data.guid = 'J7B1X'
>     >>>             AND (ISDESCENDANTNODE(data, '/article')
>     >>>             OR ISDESCENDANTNODE(data, '/import/article')
>     >>>             )
>     >>>             ORDER BY firstImportDate DESC
>     >
>     >
>     >>> This query can take quite some time (up to 3 seconds, but it
>     gets more
>     >>> and more hte more data we have). In /article there's potentially
>     a lot
>     >>> of nodes, in /import/article usually almost nil.
>     >
>     >
>     >>> If we now separate the query into 2:
>     >
>     >>> SELECT * FROM [own:unstructured] AS data WHERE data.guid = 'J7B1X'
>     >>>             AND ISDESCENDANTNODE(data, '/article')
>     >>>             ORDER BY firstImportDate DESC
>     >
>     >>> and
>     >
>     >>> SELECT * FROM [own:unstructured] AS data WHERE data.guid = 'J7B1X'
>     >>>             AND ISDESCENDANTNODE(data, '/import/article')
>     >>>             ORDER BY firstImportDate DESC
>     >
>     >>> Both queries take approx. 10ms (and return 0 or 1 resultset,
>     more is not
>     >>> possible). So quite fast.
>     >
>     >>> Can anyone explain to me, why that is and how we could rewrite
>     the query
>     >>> to make it fast with a single one as well?
>     >
>     >>> Thanks
>     >
>     >>> chregu
>     >
>     >
> 
> 

-- 
Liip AG  //  Feldstrasse 133 //  CH-8004 Zurich
Tel +41 43 500 39 81 // Mobile +41 76 561 88 60
www.liip.ch // blog.liip.ch // GnuPG 0x0748D5FE


Re: Strange Search Performance problem with OR

Posted by Alex Parvulescu <al...@gmail.com>.
Hi Christian,

can you enable debug logs
on org.apache.jackrabbit.core.query.lucene.join.QueryEngine?
I'm curious to see what the constraits look like in the big query vs the 2
small ones.

This also goes for the join you've mentioned later in the thread, but I
just wanted to start with the first query ;)

alex

On Tue, Mar 27, 2012 at 9:55 AM, Christian Stocker <
christian.stocker@liip.ch> wrote:

> Hi
>
> On 27.03.12 09:49, David Buchmann wrote:
> > sorry, my bad. did not read correctly.
> > you do have the paranthesis so you did what you wanted to do.
> >
> > looks like lucene/jackrabbit combine the 2 datasets first and filter
> > later...
> >
> > what if you try
> >
> >
> > SELECT * FROM [own:unstructured] AS data
> > WHERE
> >     data.guid = 'J7B1X' AND ISDESCENDANTNODE(data, '/article')
> >   OR
> >     data.guid = 'J7B1X' AND ISDESCENDANTNODE(data, '/import/article')
> > ORDER BY firstImportDate DESC
>
> I tried that and I tried it again now. Same response time as the
> original query.
>
> Any hints from someone who knows the internal workings of
> jackrabbit/lucene?
>
> chregu
>
> >
> > if this is fast, then the jackrabbit query engine is not very clever...
> >
> > cheers,david
> >
> >
> > Am 27.03.2012 09:10, schrieb David Buchmann:
> >> i think the 2 queries are not equivalent. the first one is equivalent to
> >
> >> ...
> >> WHERE data.guid = 'J7B1X'
> >>   AND (ISDESCENDANTNODE(data, '/article')
> >
> >> plus
> >
> >> WHERE
> >>  ISDESCENDANTNODE(data, '/import/article')
> >
> >> (if you want the data.guid = ... to apply to both, you need paranthesis)
> >
> >> but if /import/article is almost empty, i still don't see why the
> >> combined query should take so long unless jackrabbit/lucene are doing
> >> something stupid.
> >
> >> cheers,david
> >
> >> Am 26.03.2012 22:28, schrieb Christian Stocker:
> >>> Hi
> >
> >>> We have the following search query
> >
> >
> >>> SELECT * FROM [own:unstructured] AS data WHERE data.guid = 'J7B1X'
> >>>             AND (ISDESCENDANTNODE(data, '/article')
> >>>             OR ISDESCENDANTNODE(data, '/import/article')
> >>>             )
> >>>             ORDER BY firstImportDate DESC
> >
> >
> >>> This query can take quite some time (up to 3 seconds, but it gets more
> >>> and more hte more data we have). In /article there's potentially a lot
> >>> of nodes, in /import/article usually almost nil.
> >
> >
> >>> If we now separate the query into 2:
> >
> >>> SELECT * FROM [own:unstructured] AS data WHERE data.guid = 'J7B1X'
> >>>             AND ISDESCENDANTNODE(data, '/article')
> >>>             ORDER BY firstImportDate DESC
> >
> >>> and
> >
> >>> SELECT * FROM [own:unstructured] AS data WHERE data.guid = 'J7B1X'
> >>>             AND ISDESCENDANTNODE(data, '/import/article')
> >>>             ORDER BY firstImportDate DESC
> >
> >>> Both queries take approx. 10ms (and return 0 or 1 resultset, more is
> not
> >>> possible). So quite fast.
> >
> >>> Can anyone explain to me, why that is and how we could rewrite the
> query
> >>> to make it fast with a single one as well?
> >
> >>> Thanks
> >
> >>> chregu
> >
> >
>

Re: Strange Search Performance problem with OR

Posted by Christian Stocker <ch...@liip.ch>.
Hi

On 27.03.12 09:49, David Buchmann wrote:
> sorry, my bad. did not read correctly.
> you do have the paranthesis so you did what you wanted to do.
> 
> looks like lucene/jackrabbit combine the 2 datasets first and filter
> later...
> 
> what if you try
> 
> 
> SELECT * FROM [own:unstructured] AS data
> WHERE
>     data.guid = 'J7B1X' AND ISDESCENDANTNODE(data, '/article')
>   OR
>     data.guid = 'J7B1X' AND ISDESCENDANTNODE(data, '/import/article')
> ORDER BY firstImportDate DESC

I tried that and I tried it again now. Same response time as the
original query.

Any hints from someone who knows the internal workings of jackrabbit/lucene?

chregu

> 
> if this is fast, then the jackrabbit query engine is not very clever...
> 
> cheers,david
> 
> 
> Am 27.03.2012 09:10, schrieb David Buchmann:
>> i think the 2 queries are not equivalent. the first one is equivalent to
> 
>> ...
>> WHERE data.guid = 'J7B1X'
>>   AND (ISDESCENDANTNODE(data, '/article')
> 
>> plus
> 
>> WHERE
>>  ISDESCENDANTNODE(data, '/import/article')
> 
>> (if you want the data.guid = ... to apply to both, you need paranthesis)
> 
>> but if /import/article is almost empty, i still don't see why the
>> combined query should take so long unless jackrabbit/lucene are doing
>> something stupid.
> 
>> cheers,david
> 
>> Am 26.03.2012 22:28, schrieb Christian Stocker:
>>> Hi
> 
>>> We have the following search query
> 
> 
>>> SELECT * FROM [own:unstructured] AS data WHERE data.guid = 'J7B1X'
>>> 		AND (ISDESCENDANTNODE(data, '/article')
>>> 		OR ISDESCENDANTNODE(data, '/import/article')
>>> 		)
>>> 		ORDER BY firstImportDate DESC
> 
> 
>>> This query can take quite some time (up to 3 seconds, but it gets more
>>> and more hte more data we have). In /article there's potentially a lot
>>> of nodes, in /import/article usually almost nil.
> 
> 
>>> If we now separate the query into 2:
> 
>>> SELECT * FROM [own:unstructured] AS data WHERE data.guid = 'J7B1X'
>>> 		AND ISDESCENDANTNODE(data, '/article')
>>> 		ORDER BY firstImportDate DESC
> 
>>> and
> 
>>> SELECT * FROM [own:unstructured] AS data WHERE data.guid = 'J7B1X'
>>> 		AND ISDESCENDANTNODE(data, '/import/article')
>>> 		ORDER BY firstImportDate DESC
> 
>>> Both queries take approx. 10ms (and return 0 or 1 resultset, more is not
>>> possible). So quite fast.
> 
>>> Can anyone explain to me, why that is and how we could rewrite the query
>>> to make it fast with a single one as well?
> 
>>> Thanks
> 
>>> chregu
> 
> 

Re: Strange Search Performance problem with OR

Posted by David Buchmann <da...@liip.ch>.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

sorry, my bad. did not read correctly.
you do have the paranthesis so you did what you wanted to do.

looks like lucene/jackrabbit combine the 2 datasets first and filter
later...

what if you try


SELECT * FROM [own:unstructured] AS data
WHERE
    data.guid = 'J7B1X' AND ISDESCENDANTNODE(data, '/article')
  OR
    data.guid = 'J7B1X' AND ISDESCENDANTNODE(data, '/import/article')
ORDER BY firstImportDate DESC

if this is fast, then the jackrabbit query engine is not very clever...

cheers,david


Am 27.03.2012 09:10, schrieb David Buchmann:
> i think the 2 queries are not equivalent. the first one is equivalent to
> 
> ...
> WHERE data.guid = 'J7B1X'
>   AND (ISDESCENDANTNODE(data, '/article')
> 
> plus
> 
> WHERE
>  ISDESCENDANTNODE(data, '/import/article')
> 
> (if you want the data.guid = ... to apply to both, you need paranthesis)
> 
> but if /import/article is almost empty, i still don't see why the
> combined query should take so long unless jackrabbit/lucene are doing
> something stupid.
> 
> cheers,david
> 
> Am 26.03.2012 22:28, schrieb Christian Stocker:
>> Hi
> 
>> We have the following search query
> 
> 
>> SELECT * FROM [own:unstructured] AS data WHERE data.guid = 'J7B1X'
>> 		AND (ISDESCENDANTNODE(data, '/article')
>> 		OR ISDESCENDANTNODE(data, '/import/article')
>> 		)
>> 		ORDER BY firstImportDate DESC
> 
> 
>> This query can take quite some time (up to 3 seconds, but it gets more
>> and more hte more data we have). In /article there's potentially a lot
>> of nodes, in /import/article usually almost nil.
> 
> 
>> If we now separate the query into 2:
> 
>> SELECT * FROM [own:unstructured] AS data WHERE data.guid = 'J7B1X'
>> 		AND ISDESCENDANTNODE(data, '/article')
>> 		ORDER BY firstImportDate DESC
> 
>> and
> 
>> SELECT * FROM [own:unstructured] AS data WHERE data.guid = 'J7B1X'
>> 		AND ISDESCENDANTNODE(data, '/import/article')
>> 		ORDER BY firstImportDate DESC
> 
>> Both queries take approx. 10ms (and return 0 or 1 resultset, more is not
>> possible). So quite fast.
> 
>> Can anyone explain to me, why that is and how we could rewrite the query
>> to make it fast with a single one as well?
> 
>> Thanks
> 
>> chregu
> 

- -- 
Liip AG // Agile Web Development // T +41 26 422 25 11
CH-1700 Fribourg // PGP 0xA581808B // www.liip.ch
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAk9xcPUACgkQqBnXnqWBgIsFKwCfZoOzL8kIv5cqqRi3+Fhiz3oJ
m4IAnA5Dhrwg6ddilJ7rA2Rp9fPcaxAS
=ORhk
-----END PGP SIGNATURE-----

Re: Strange Search Performance problem with OR

Posted by David Buchmann <da...@liip.ch>.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

i think the 2 queries are not equivalent. the first one is equivalent to

...
WHERE data.guid = 'J7B1X'
  AND (ISDESCENDANTNODE(data, '/article')

plus

WHERE
 ISDESCENDANTNODE(data, '/import/article')

(if you want the data.guid = ... to apply to both, you need paranthesis)

but if /import/article is almost empty, i still don't see why the
combined query should take so long unless jackrabbit/lucene are doing
something stupid.

cheers,david

Am 26.03.2012 22:28, schrieb Christian Stocker:
> Hi
> 
> We have the following search query
> 
> 
> SELECT * FROM [own:unstructured] AS data WHERE data.guid = 'J7B1X'
> 		AND (ISDESCENDANTNODE(data, '/article')
> 		OR ISDESCENDANTNODE(data, '/import/article')
> 		)
> 		ORDER BY firstImportDate DESC
> 
> 
> This query can take quite some time (up to 3 seconds, but it gets more
> and more hte more data we have). In /article there's potentially a lot
> of nodes, in /import/article usually almost nil.
> 
> 
> If we now separate the query into 2:
> 
> SELECT * FROM [own:unstructured] AS data WHERE data.guid = 'J7B1X'
> 		AND ISDESCENDANTNODE(data, '/article')
> 		ORDER BY firstImportDate DESC
> 
> and
> 
> SELECT * FROM [own:unstructured] AS data WHERE data.guid = 'J7B1X'
> 		AND ISDESCENDANTNODE(data, '/import/article')
> 		ORDER BY firstImportDate DESC
> 
> Both queries take approx. 10ms (and return 0 or 1 resultset, more is not
> possible). So quite fast.
> 
> Can anyone explain to me, why that is and how we could rewrite the query
> to make it fast with a single one as well?
> 
> Thanks
> 
> chregu

- -- 
Liip AG // Agile Web Development // T +41 26 422 25 11
CH-1700 Fribourg // PGP 0xA581808B // www.liip.ch
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAk9xZ/sACgkQqBnXnqWBgIu7MwCeOszdHIwKRfM3wQxjj7p1B34/
tRAAoJGC+CZmxKg0M5BoFP3S7/ojv7kF
=fEG0
-----END PGP SIGNATURE-----

Re: Strange Search Performance problem with OR

Posted by Christian Stocker <ch...@liip.ch>.
Hi again

Here's another strange issue with query performance.

I have this query:

***
SELECT data.* FROM [own:unstructured] AS data LEFT OUTER JOIN
[nzz:unstructured] AS referring ON referring.reference = data.[jcr:uuid]
WHERE
        data.[phpcr:class] = 'Own\ApiBundle\Document\Article' AND
((data.publication = 'own')
        AND (CONTAINS(data.categories, 'KURZ'))
        AND (data.departmentSlugs = 'international'))
        AND ( ((data.permissionPath  NOT LIKE 'owns/%')))
        AND (data.title IS NOT NULL AND data.title <> '') AND
(data.teaser IS NOT NULL AND data.teaser <> '') AND (
        (referring.reference IS NOT NULL AND ISDESCENDANTNODE(referring,
'/article/2012/03/26'))
        OR ISDESCENDANTNODE(data, '/article/2012/03/26')
        ) ORDER BY data.modificationDate
***

This is fast enough when it finds something. When I change for example
data.departmentSlugs = 'international'
to something else, where it certainly isn't finding anything, it's damn
slow. 50ms vs. 2'500ms or so.

I'm sure there's an explenation for this :)

chregu





On 26.03.12 22:28, Christian Stocker wrote:
> Hi
> 
> We have the following search query
> 
> 
> SELECT * FROM [own:unstructured] AS data WHERE data.guid = 'J7B1X'
> 		AND (ISDESCENDANTNODE(data, '/article')
> 		OR ISDESCENDANTNODE(data, '/import/article')
> 		)
> 		ORDER BY firstImportDate DESC
> 
> 
> This query can take quite some time (up to 3 seconds, but it gets more
> and more hte more data we have). In /article there's potentially a lot
> of nodes, in /import/article usually almost nil.
> 
> 
> If we now separate the query into 2:
> 
> SELECT * FROM [own:unstructured] AS data WHERE data.guid = 'J7B1X'
> 		AND ISDESCENDANTNODE(data, '/article')
> 		ORDER BY firstImportDate DESC
> 
> and
> 
> SELECT * FROM [own:unstructured] AS data WHERE data.guid = 'J7B1X'
> 		AND ISDESCENDANTNODE(data, '/import/article')
> 		ORDER BY firstImportDate DESC
> 
> Both queries take approx. 10ms (and return 0 or 1 resultset, more is not
> possible). So quite fast.
> 
> Can anyone explain to me, why that is and how we could rewrite the query
> to make it fast with a single one as well?
> 
> Thanks
> 
> chregu

-- 
Liip AG  //  Feldstrasse 133 //  CH-8004 Zurich
Tel +41 43 500 39 81 // Mobile +41 76 561 88 60
www.liip.ch // blog.liip.ch // GnuPG 0x0748D5FE