Use objects in array type and nested objects as root object type

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Use objects in array type and nested objects as root object type

eugeis
Hello,

a) how can I use a object in array type.

e.g.

folder : {
        path : "C:/Windows",
        files (should be an array of filetype) :
         [
            {
                name : "File1.txt",
                description : "Example file 1"
            },
            {
                name : "File2.txt",
                description : "Example file 2"
            }
        ]
    }

Files array type should be array of file object type


b) What I have to do, to have the file object type as a root object
type. The folder (root object type) would have nested file root object
type.

Thank You
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Use objects in array type and nested objects as root object type

kimchy
Administrator
You send a single JSON to be indexed, what you have in the JSON will be indexed. If you want to search for a specific file name, you can (using your JSON) use folder.files.name:something (that 'folder.files.name" can be used anywhere in elasticsearch that accepts a field).

-shay.banon

On Wed, Feb 17, 2010 at 10:36 AM, eugeis <[hidden email]> wrote:
Hello,

a) how can I use a object in array type.

e.g.

folder : {
       path : "C:/Windows",
       files (should be an array of filetype) :
        [
           {
               name : "File1.txt",
               description : "Example file 1"
           },
           {
               name : "File2.txt",
               description : "Example file 2"
           }
       ]
   }

Files array type should be array of file object type


b) What I have to do, to have the file object type as a root object
type. The folder (root object type) would have nested file root object
type.

Thank You

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Use objects in array type and nested objects as root object type

eugeis
Thanks, it works with query "folder.files.name",
but "folder" objects are found, but like expected with all
"files" (matched and unmatched "files").

It is possible to search "folder" and "file" objects? I want something
like

a) curl -XGET http://...:9200/indexname/folder/_search?q=folder.path:*xxx*
=> "folder" objects are found
b) curl -XGET http://...:9200/indexname/folder/files/_search?q=folder.files.name:*xxx*
=> "file" objects are found

Therefore I thought that nested "file" object should be also "root"
object.

-eugeis


On 17 Feb., 14:53, Shay Banon <[hidden email]> wrote:

> You send a single JSON to be indexed, what you have in the JSON will be
> indexed. If you want to search for a specific file name, you can (using your
> JSON) use folder.files.name:something (that 'folder.files.name" can be used
> anywhere in elasticsearch that accepts a field).
>
> -shay.banon
>
> On Wed, Feb 17, 2010 at 10:36 AM, eugeis <[hidden email]> wrote:
> > Hello,
>
> > a) how can I use a object in array type.
>
> > e.g.
>
> > folder : {
> >        path : "C:/Windows",
> >        files (should be an array of filetype) :
> >         [
> >            {
> >                name : "File1.txt",
> >                description : "Example file 1"
> >            },
> >            {
> >                name : "File2.txt",
> >                description : "Example file 2"
> >            }
> >        ]
> >    }
>
> > Files array type should be array of file object type
>
> > b) What I have to do, to have the file object type as a root object
> > type. The folder (root object type) would have nested file root object
> > type.
>
> > Thank You
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Use objects in array type and nested objects as root object type

kimchy
Administrator
You can only navigate from the top level object and downwards. What you can do, is define the pathType for object mapping as explained here: http://www.elasticsearch.com/docs/elasticsearch/mapping/object_type/#pathType.

-shay.banon

On Wed, Feb 17, 2010 at 5:47 PM, eugeis <[hidden email]> wrote:
Thanks, it works with query "folder.files.name",
but "folder" objects are found, but like expected with all
"files" (matched and unmatched "files").

It is possible to search "folder" and "file" objects? I want something
like

a) curl -XGET http://...:9200/indexname/folder/_search?q=folder.path:*xxx*
=> "folder" objects are found
b) curl -XGET http://...:9200/indexname/folder/files/_search?q=folder.files.name:*xxx*
=> "file" objects are found

Therefore I thought that nested "file" object should be also "root"
object.

-eugeis


On 17 Feb., 14:53, Shay Banon <[hidden email]> wrote:
> You send a single JSON to be indexed, what you have in the JSON will be
> indexed. If you want to search for a specific file name, you can (using your
> JSON) use folder.files.name:something (that 'folder.files.name" can be used
> anywhere in elasticsearch that accepts a field).
>
> -shay.banon
>
> On Wed, Feb 17, 2010 at 10:36 AM, eugeis <[hidden email]> wrote:
> > Hello,
>
> > a) how can I use a object in array type.
>
> > e.g.
>
> > folder : {
> >        path : "C:/Windows",
> >        files (should be an array of filetype) :
> >         [
> >            {
> >                name : "File1.txt",
> >                description : "Example file 1"
> >            },
> >            {
> >                name : "File2.txt",
> >                description : "Example file 2"
> >            }
> >        ]
> >    }
>
> > Files array type should be array of file object type
>
> > b) What I have to do, to have the file object type as a root object
> > type. The folder (root object type) would have nested file root object
> > type.
>
> > Thank You

Loading...