You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-issues@jackrabbit.apache.org by "Vikas Saurabh (JIRA)" <ji...@apache.org> on 2016/01/06 18:59:39 UTC

[jira] [Comment Edited] (OAK-3838) IndexPlanner incorrectly lets all full text indices to participate for suggest/spellcheck queries

    [ https://issues.apache.org/jira/browse/OAK-3838?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15085594#comment-15085594 ] 

Vikas Saurabh edited comment on OAK-3838 at 1/6/16 5:59 PM:
------------------------------------------------------------

Suggest and spellcheck queries get piggy-backed as native queries (of the form {{native-lucene=suggest?term=<text>}}).

For a node type {{Type2}} extending {{Type1}} and {{Mixin1}}, we get superTypes reported as {{Type1, Mixin1, Type2}}.

Currently, any indexing rule for super types would tend answer queries done on Type2. BUT, suggestions for indices for Type1 or Mixin1 would contain suggestion for nodes which are not on behalf of Type2 (thus containing extraneous data).

Usually, such extraneous data gets filtered by query engine. But, results from suggestion/spellchek is opaque to query engine and hence would bubble up all the way. 

To avoid this, we want to match {{nodeTypeName}} picked by selector exactly to indexing rule defined in the index. [~tmueller], is it fine if we expose {{nodeTypeName}} in {{Filter}} (like we do for mixinTypes, primaryTypes, superTypes)?


was (Author: catholicon):
Suggest and spellcheck queries get piggy-backed as native queries (of the form {{native-lucene=suggest?term=<text>}}). So, if a query wants suggestions on {{nt:unstructured}} while there's a lucene index on {{nt:base}}, we shouldn't let this index answer the query - as the index would give suggestion from other nodes (which are nt:base but not nt:unstructured). In usual cases, such extraneous results get filtered out by layers receiving rows from index - but the layers above would simply let all the rows go through.

To avoid this, we want to match {{nodeTypeName}} picked by selector exactly to indexing rule defined in the index. [~tmueller], is it fine if we expose {{nodeTypeName}} in {{Filter}} (like we do for mixinTypes, primaryTypes, etc)?

> IndexPlanner incorrectly lets all full text indices to participate for suggest/spellcheck queries
> -------------------------------------------------------------------------------------------------
>
>                 Key: OAK-3838
>                 URL: https://issues.apache.org/jira/browse/OAK-3838
>             Project: Jackrabbit Oak
>          Issue Type: Bug
>          Components: lucene
>            Reporter: Vikas Saurabh
>            Assignee: Vikas Saurabh
>             Fix For: 1.4
>
>         Attachments: OAK-3838.patch
>
>
> Currently, index planner builds plan for suggest/spellcheck queries even if the indices don't have those functionality enabled.
> Also, there's another issue: when suggestion/spell-check come into play, we need to dis-allow inheritance behavior of indexingRule. To clarify, a query like {{SELECT [rep:suggest()] from [nt:unstructured] where suggest('test')}} if using some index preparing suggestions on {{nt:base}} would give incorrect suggestions as the index would have suggested values from other type of nodes as well.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)