You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@lucene.apache.org by Jigar Shah <ji...@gmail.com> on 2015/01/08 12:48:33 UTC

Faceted Search Hierarchy

Very simple question, on facet

Index has 2 documents as follows:

Doc1
Indexed facet path: Asia/India
Doc2
Indexed facet path: India/Gujarat


Now while faceted search

facets.getTopChildren()

Will it return 1(Asia) result or 2(Asia, India) ?

So basically will it join values and return hierarchy ?

Thanks,

Re: Faceted Search Hierarchy

Posted by Jigar Shah <ji...@gmail.com>.
Yes, Agree,

Updates in hierarchy is very common use-case. And seeing path components in
different hierarchy is not accepted by customers.

In some cases relating based on path components makes sense.

Just out of interest, can it be ever done with Lucene, by some
customization, or some attempts made for this.

Thanks







On Thu, Jan 8, 2015 at 7:40 PM, Shai Erera <se...@gmail.com> wrote:

> Not automatically. There's no reason to assume that 'India' is the same in
> 'India/Gujarat' and 'Asia/India'. Furthermore, if you first add a document
> with India/Gujarat and later add a document Asia/India, we cannot go back
> to the other document and update the hierarchy.
>
> On Thu, Jan 8, 2015 at 3:27 PM, Jigar Shah <ji...@gmail.com> wrote:
>
> > Is there some way to achieve this at Lucene level. so i can get facet
> like
> > below ?
> >
> > Doc1: Asia + Asia/India
> > Doc2: India + Asia/India/Gujarat
> >
> > Which can result into this:
> >
> > Asia/India/Gujarat (2)
> >
> > Can Lucene internally index like above, as 'India' value already exist as
> > path of some other document ?
> > Or some other ways that can be explored within Lucene.
> >
> >
> >
> > On Thu, Jan 8, 2015 at 5:26 PM, Shai Erera <se...@gmail.com> wrote:
> >
> > > Lucene does not understand the word "India", therefore the facets that
> > are
> > > actually indexed are:
> > >
> > > Doc1: Asia + Asia/India
> > > Doc2: India + India/Gujarat
> > >
> > > When you ask for top children, you will get Asia + India, both with a
> > count
> > > of 1.
> > >
> > > Shai
> > >
> > > On Thu, Jan 8, 2015 at 1:48 PM, Jigar Shah <ji...@gmail.com>
> > wrote:
> > >
> > > > Very simple question, on facet
> > > >
> > > > Index has 2 documents as follows:
> > > >
> > > > Doc1
> > > > Indexed facet path: Asia/India
> > > > Doc2
> > > > Indexed facet path: India/Gujarat
> > > >
> > > >
> > > > Now while faceted search
> > > >
> > > > facets.getTopChildren()
> > > >
> > > > Will it return 1(Asia) result or 2(Asia, India) ?
> > > >
> > > > So basically will it join values and return hierarchy ?
> > > >
> > > > Thanks,
> > > >
> > >
> >
>

Re: Faceted Search Hierarchy

Posted by Shai Erera <se...@gmail.com>.
Not automatically. There's no reason to assume that 'India' is the same in
'India/Gujarat' and 'Asia/India'. Furthermore, if you first add a document
with India/Gujarat and later add a document Asia/India, we cannot go back
to the other document and update the hierarchy.

On Thu, Jan 8, 2015 at 3:27 PM, Jigar Shah <ji...@gmail.com> wrote:

> Is there some way to achieve this at Lucene level. so i can get facet like
> below ?
>
> Doc1: Asia + Asia/India
> Doc2: India + Asia/India/Gujarat
>
> Which can result into this:
>
> Asia/India/Gujarat (2)
>
> Can Lucene internally index like above, as 'India' value already exist as
> path of some other document ?
> Or some other ways that can be explored within Lucene.
>
>
>
> On Thu, Jan 8, 2015 at 5:26 PM, Shai Erera <se...@gmail.com> wrote:
>
> > Lucene does not understand the word "India", therefore the facets that
> are
> > actually indexed are:
> >
> > Doc1: Asia + Asia/India
> > Doc2: India + India/Gujarat
> >
> > When you ask for top children, you will get Asia + India, both with a
> count
> > of 1.
> >
> > Shai
> >
> > On Thu, Jan 8, 2015 at 1:48 PM, Jigar Shah <ji...@gmail.com>
> wrote:
> >
> > > Very simple question, on facet
> > >
> > > Index has 2 documents as follows:
> > >
> > > Doc1
> > > Indexed facet path: Asia/India
> > > Doc2
> > > Indexed facet path: India/Gujarat
> > >
> > >
> > > Now while faceted search
> > >
> > > facets.getTopChildren()
> > >
> > > Will it return 1(Asia) result or 2(Asia, India) ?
> > >
> > > So basically will it join values and return hierarchy ?
> > >
> > > Thanks,
> > >
> >
>

Re: Faceted Search Hierarchy

Posted by Jigar Shah <ji...@gmail.com>.
Is there some way to achieve this at Lucene level. so i can get facet like
below ?

Doc1: Asia + Asia/India
Doc2: India + Asia/India/Gujarat

Which can result into this:

Asia/India/Gujarat (2)

Can Lucene internally index like above, as 'India' value already exist as
path of some other document ?
Or some other ways that can be explored within Lucene.



On Thu, Jan 8, 2015 at 5:26 PM, Shai Erera <se...@gmail.com> wrote:

> Lucene does not understand the word "India", therefore the facets that are
> actually indexed are:
>
> Doc1: Asia + Asia/India
> Doc2: India + India/Gujarat
>
> When you ask for top children, you will get Asia + India, both with a count
> of 1.
>
> Shai
>
> On Thu, Jan 8, 2015 at 1:48 PM, Jigar Shah <ji...@gmail.com> wrote:
>
> > Very simple question, on facet
> >
> > Index has 2 documents as follows:
> >
> > Doc1
> > Indexed facet path: Asia/India
> > Doc2
> > Indexed facet path: India/Gujarat
> >
> >
> > Now while faceted search
> >
> > facets.getTopChildren()
> >
> > Will it return 1(Asia) result or 2(Asia, India) ?
> >
> > So basically will it join values and return hierarchy ?
> >
> > Thanks,
> >
>

Re: Faceted Search Hierarchy

Posted by Shai Erera <se...@gmail.com>.
Lucene does not understand the word "India", therefore the facets that are
actually indexed are:

Doc1: Asia + Asia/India
Doc2: India + India/Gujarat

When you ask for top children, you will get Asia + India, both with a count
of 1.

Shai

On Thu, Jan 8, 2015 at 1:48 PM, Jigar Shah <ji...@gmail.com> wrote:

> Very simple question, on facet
>
> Index has 2 documents as follows:
>
> Doc1
> Indexed facet path: Asia/India
> Doc2
> Indexed facet path: India/Gujarat
>
>
> Now while faceted search
>
> facets.getTopChildren()
>
> Will it return 1(Asia) result or 2(Asia, India) ?
>
> So basically will it join values and return hierarchy ?
>
> Thanks,
>