Faceted search with typeahead, Play! framework, MongoDB & ElasticSearch issues

Hi,

first of all thanks Mr. Banon and all of you, who contributing to ES. It
simply rocks !

Since i am new to ES and also to NoSQL world i'd like to ask some questions
about ES and integration with other technologies.

Currently i work on a web application that consists of
0) Play! Framework, as an application framework [0] ,
1) MongoDB, as a persistent datastore [1]
2) PlayMorphia, as an Document-Object mapper [2]
3) ElasticSearch, as a search engine

My goals:

  • to implement search-centric application with strong use of faceted
    search, typeahead mechanism, cloud ready
  • i also like to show facets according to search context ( reduce
    information overload of user interface )
  • my data set is relatively small, about 5 types of documents / up to
    2000 of each type / up to 30 primitive fields per document

Challenges:
0) How to model data in MongoDB and then map then to ES ?
Q1: should i use much more Embedding instead of Referencing =>
index one big (not flat) document ?
Q1: or rather use much more normalized model => index entities
separately (each is flat) ?

1) How to efficiently index Mongodb ?
   Possible solutions:
- manually, utilizing Morphia's lifecycle methods. ... costs more code, 

but have more controll over the whole process
- using the MongoDB river plugin. ...black box solution, must have
well designed db model and mapping to work well :wink:

- Ok, there is also a Play/MongoDB/ES integration module, but it not 

works well for me
Q2: Have i left out something ?

2) How to implement front-end faceted search user interface ?
(Im)possible solutions:
     - javascript search-oriented ui framework. It not exists, yet :D 

(?)
- ElasticSearch's UI framework. It not exists, yet :smiley:
- use SenseiDB's [4] web console. Integration may not be
possible. I'd like to use ES.

     - Ok, the last solution is to have knowledge of ajax/js and write 

it for myself.
Q3: Have i left out something ?

3) How to implement typeahead functionality ?
     Q4: has somebody experienced Cleo [3] integration with ES ?
     Q5: is there ES API to do typeahead ?

Thanks for any helpful info.

Michal

[0] - http://www.playframework.org
[1] - http://www.mongodb.org
[2] - http://www.playframework.org/modules/morphia
[3] - http://sna-projects.com/cleo/
[4] - http://linkedin.github.com/sensei/gettingStarted.html

Hello,

Interestingly, I am building a new application using a very similar stack
... Play!/MongoDB/Elasticsearch ... I am working on the same problems.

Regarding data model: The items I am storing in my database and indexing
are easily modeled as documents, so I am doing that. I am making no attempt
to normalize them.

Regarding Mongo to ES: I have done some reading on the river, but there are
accounts of memory issues. I do not think it is stable yet. Shay has
mentioned an architecture in another thread in this group (search for
mongodb elasticsearch river), but he did say that it is not implemented and
that it is likely quite a bit of effort. I have a custom application that
processes the data in batches to insert into mongodb. For now I will be
modifying it to also hand the document to ES for indexing. My documents do
not change so this works for me.

Regarding search interface: I don't know of anything out there. I have
built a few search interfaces in the past and I plan to custom build this
one as well with heavy use of jQuery.

Type ahead: I plan to implement this as well, but only for facet values, so
I will have a finite list of values to filter on with my UI controls.
Others have asked how to do this for general search terms based on the
terms in the index, but I have not seen any great solutions yet. Try
searching the group.

Mark

On Sunday, March 4, 2012 9:51:49 AM UTC-8, Michal Karták wrote:

Hi,

first of all thanks Mr. Banon and all of you, who contributing to ES. It
simply rocks !

Since i am new to ES and also to NoSQL world i'd like to ask some
questions about ES and integration with other technologies.

Currently i work on a web application that consists of
0) Play! Framework, as an application framework [0] ,
1) MongoDB, as a persistent datastore [1]
2) PlayMorphia, as an Document-Object mapper [2]
3) Elasticsearch, as a search engine

My goals:

  • to implement search-centric application with strong use of faceted
    search, typeahead mechanism, cloud ready
  • i also like to show facets according to search context ( reduce
    information overload of user interface )
  • my data set is relatively small, about 5 types of documents / up to
    2000 of each type / up to 30 primitive fields per document

Challenges:
0) How to model data in MongoDB and then map then to ES ?
Q1: should i use much more Embedding instead of Referencing =>
index one big (not flat) document ?
Q1: or rather use much more normalized model => index entities
separately (each is flat) ?

1) How to efficiently index Mongodb ?
   Possible solutions:
- manually, utilizing Morphia's lifecycle methods. ... costs more 

code, but have more controll over the whole process
- using the MongoDB river plugin. ...black box solution, must have
well designed db model and mapping to work well :wink:

- Ok, there is also a Play/MongoDB/ES integration module, but it not 

works well for me
Q2: Have i left out something ?

2) How to implement front-end faceted search user interface ?
(Im)possible solutions:
     - javascript search-oriented ui framework. It not exists, yet :D 

(?)
- Elasticsearch's UI framework. It not exists, yet :smiley:
- use SenseiDB's [4] web console. Integration may not be
possible. I'd like to use ES.

     - Ok, the last solution is to have knowledge of ajax/js and write 

it for myself.
Q3: Have i left out something ?

3) How to implement typeahead functionality ?
     Q4: has somebody experienced Cleo [3] integration with ES ?
     Q5: is there ES API to do typeahead ?

Thanks for any helpful info.

Michal

[0] - http://www.playframework.org
[1] - http://www.mongodb.org
[2] - http://www.playframework.org/modules/morphia
[3] - http://sna-projects.com/cleo/
[4] - http://linkedin.github.com/sensei/gettingStarted.html

On Sunday, March 4, 2012 9:51:49 AM UTC-8, Michal Karták wrote:

Hi,

first of all thanks Mr. Banon and all of you, who contributing to ES. It
simply rocks !

Since i am new to ES and also to NoSQL world i'd like to ask some
questions about ES and integration with other technologies.

Currently i work on a web application that consists of
0) Play! Framework, as an application framework [0] ,
1) MongoDB, as a persistent datastore [1]
2) PlayMorphia, as an Document-Object mapper [2]
3) Elasticsearch, as a search engine

My goals:

  • to implement search-centric application with strong use of faceted
    search, typeahead mechanism, cloud ready
  • i also like to show facets according to search context ( reduce
    information overload of user interface )
  • my data set is relatively small, about 5 types of documents / up to
    2000 of each type / up to 30 primitive fields per document

Challenges:
0) How to model data in MongoDB and then map then to ES ?
Q1: should i use much more Embedding instead of Referencing =>
index one big (not flat) document ?
Q1: or rather use much more normalized model => index entities
separately (each is flat) ?

1) How to efficiently index Mongodb ?
   Possible solutions:
- manually, utilizing Morphia's lifecycle methods. ... costs more 

code, but have more controll over the whole process
- using the MongoDB river plugin. ...black box solution, must have
well designed db model and mapping to work well :wink:

- Ok, there is also a Play/MongoDB/ES integration module, but it not 

works well for me
Q2: Have i left out something ?

2) How to implement front-end faceted search user interface ?
(Im)possible solutions:
     - javascript search-oriented ui framework. It not exists, yet :D 

(?)
- Elasticsearch's UI framework. It not exists, yet :smiley:
- use SenseiDB's [4] web console. Integration may not be
possible. I'd like to use ES.

     - Ok, the last solution is to have knowledge of ajax/js and write 

it for myself.
Q3: Have i left out something ?

3) How to implement typeahead functionality ?
     Q4: has somebody experienced Cleo [3] integration with ES ?
     Q5: is there ES API to do typeahead ?

Thanks for any helpful info.

Michal

[0] - http://www.playframework.org
[1] - http://www.mongodb.org
[2] - http://www.playframework.org/modules/morphia
[3] - http://sna-projects.com/cleo/
[4] - http://linkedin.github.com/sensei/gettingStarted.html

It looks like a new version of the mongodb river has been released. It may
have improved.

https://groups.google.com/d/topic/elasticsearch/C1y4uMOv9ts/discussion

On Sunday, March 4, 2012 9:51:49 AM UTC-8, Michal Karták wrote:

Hi,

first of all thanks Mr. Banon and all of you, who contributing to ES. It
simply rocks !

Since i am new to ES and also to NoSQL world i'd like to ask some
questions about ES and integration with other technologies.

Currently i work on a web application that consists of
0) Play! Framework, as an application framework [0] ,
1) MongoDB, as a persistent datastore [1]
2) PlayMorphia, as an Document-Object mapper [2]
3) Elasticsearch, as a search engine

My goals:

  • to implement search-centric application with strong use of faceted
    search, typeahead mechanism, cloud ready
  • i also like to show facets according to search context ( reduce
    information overload of user interface )
  • my data set is relatively small, about 5 types of documents / up to
    2000 of each type / up to 30 primitive fields per document

Challenges:
0) How to model data in MongoDB and then map then to ES ?
Q1: should i use much more Embedding instead of Referencing =>
index one big (not flat) document ?
Q1: or rather use much more normalized model => index entities
separately (each is flat) ?

1) How to efficiently index Mongodb ?
   Possible solutions:
- manually, utilizing Morphia's lifecycle methods. ... costs more 

code, but have more controll over the whole process
- using the MongoDB river plugin. ...black box solution, must have
well designed db model and mapping to work well :wink:

- Ok, there is also a Play/MongoDB/ES integration module, but it not 

works well for me
Q2: Have i left out something ?

2) How to implement front-end faceted search user interface ?
(Im)possible solutions:
     - javascript search-oriented ui framework. It not exists, yet :D 

(?)
- Elasticsearch's UI framework. It not exists, yet :smiley:
- use SenseiDB's [4] web console. Integration may not be
possible. I'd like to use ES.

     - Ok, the last solution is to have knowledge of ajax/js and write 

it for myself.
Q3: Have i left out something ?

3) How to implement typeahead functionality ?
     Q4: has somebody experienced Cleo [3] integration with ES ?
     Q5: is there ES API to do typeahead ?

Thanks for any helpful info.

Michal

[0] - http://www.playframework.org
[1] - http://www.mongodb.org
[2] - http://www.playframework.org/modules/morphia
[3] - http://sna-projects.com/cleo/
[4] - http://linkedin.github.com/sensei/gettingStarted.html

Hi Mark - I'm also keen to see if there's any user interfaces for ES out
there. Did you end up finding one, or did you have to build your own using
jQuery?? Thanks!

David

On Monday, 5 March 2012 14:30:15 UTC+10, Mark Waddle wrote:

Hello,

Interestingly, I am building a new application using a very similar stack
... Play!/MongoDB/Elasticsearch ... I am working on the same problems.

Regarding data model: The items I am storing in my database and indexing
are easily modeled as documents, so I am doing that. I am making no attempt
to normalize them.

Regarding Mongo to ES: I have done some reading on the river, but there
are accounts of memory issues. I do not think it is stable yet. Shay has
mentioned an architecture in another thread in this group (search for
mongodb elasticsearch river), but he did say that it is not implemented and
that it is likely quite a bit of effort. I have a custom application that
processes the data in batches to insert into mongodb. For now I will be
modifying it to also hand the document to ES for indexing. My documents do
not change so this works for me.

Regarding search interface: I don't know of anything out there. I have
built a few search interfaces in the past and I plan to custom build this
one as well with heavy use of jQuery.

Type ahead: I plan to implement this as well, but only for facet values,
so I will have a finite list of values to filter on with my UI controls.
Others have asked how to do this for general search terms based on the
terms in the index, but I have not seen any great solutions yet. Try
searching the group.

Mark

On Sunday, March 4, 2012 9:51:49 AM UTC-8, Michal Karták wrote:

Hi,

first of all thanks Mr. Banon and all of you, who contributing to ES. It
simply rocks !

Since i am new to ES and also to NoSQL world i'd like to ask some
questions about ES and integration with other technologies.

Currently i work on a web application that consists of
0) Play! Framework, as an application framework [0] ,
1) MongoDB, as a persistent datastore [1]
2) PlayMorphia, as an Document-Object mapper [2]
3) Elasticsearch, as a search engine

My goals:

  • to implement search-centric application with strong use of faceted
    search, typeahead mechanism, cloud ready
  • i also like to show facets according to search context ( reduce
    information overload of user interface )
  • my data set is relatively small, about 5 types of documents / up to
    2000 of each type / up to 30 primitive fields per document

Challenges:
0) How to model data in MongoDB and then map then to ES ?
Q1: should i use much more Embedding instead of Referencing =>
index one big (not flat) document ?
Q1: or rather use much more normalized model => index entities
separately (each is flat) ?

1) How to efficiently index Mongodb ?
   Possible solutions:
- manually, utilizing Morphia's lifecycle methods. ... costs more 

code, but have more controll over the whole process
- using the MongoDB river plugin. ...black box solution, must have
well designed db model and mapping to work well :wink:

- Ok, there is also a Play/MongoDB/ES integration module, but it not 

works well for me
Q2: Have i left out something ?

2) How to implement front-end faceted search user interface ?
(Im)possible solutions:
     - javascript search-oriented ui framework. It not exists, yet :D 

(?)
- Elasticsearch's UI framework. It not exists, yet :smiley:
- use SenseiDB's [4] web console. Integration may not be
possible. I'd like to use ES.

     - Ok, the last solution is to have knowledge of ajax/js and 

write it for myself.
Q3: Have i left out something ?

3) How to implement typeahead functionality ?
     Q4: has somebody experienced Cleo [3] integration with ES ?
     Q5: is there ES API to do typeahead ?

Thanks for any helpful info.

Michal

[0] - http://www.playframework.org
[1] - http://www.mongodb.org
[2] - http://www.playframework.org/modules/morphia
[3] - http://sna-projects.com/cleo/
[4] - http://linkedin.github.com/sensei/gettingStarted.html

On Sunday, March 4, 2012 9:51:49 AM UTC-8, Michal Karták wrote:

Hi,

first of all thanks Mr. Banon and all of you, who contributing to ES. It
simply rocks !

Since i am new to ES and also to NoSQL world i'd like to ask some
questions about ES and integration with other technologies.

Currently i work on a web application that consists of
0) Play! Framework, as an application framework [0] ,
1) MongoDB, as a persistent datastore [1]
2) PlayMorphia, as an Document-Object mapper [2]
3) Elasticsearch, as a search engine

My goals:

  • to implement search-centric application with strong use of faceted
    search, typeahead mechanism, cloud ready
  • i also like to show facets according to search context ( reduce
    information overload of user interface )
  • my data set is relatively small, about 5 types of documents / up to
    2000 of each type / up to 30 primitive fields per document

Challenges:
0) How to model data in MongoDB and then map then to ES ?
Q1: should i use much more Embedding instead of Referencing =>
index one big (not flat) document ?
Q1: or rather use much more normalized model => index entities
separately (each is flat) ?

1) How to efficiently index Mongodb ?
   Possible solutions:
- manually, utilizing Morphia's lifecycle methods. ... costs more 

code, but have more controll over the whole process
- using the MongoDB river plugin. ...black box solution, must have
well designed db model and mapping to work well :wink:

- Ok, there is also a Play/MongoDB/ES integration module, but it not 

works well for me
Q2: Have i left out something ?

2) How to implement front-end faceted search user interface ?
(Im)possible solutions:
     - javascript search-oriented ui framework. It not exists, yet :D 

(?)
- Elasticsearch's UI framework. It not exists, yet :smiley:
- use SenseiDB's [4] web console. Integration may not be
possible. I'd like to use ES.

     - Ok, the last solution is to have knowledge of ajax/js and 

write it for myself.
Q3: Have i left out something ?

3) How to implement typeahead functionality ?
     Q4: has somebody experienced Cleo [3] integration with ES ?
     Q5: is there ES API to do typeahead ?

Thanks for any helpful info.

Michal

[0] - http://www.playframework.org
[1] - http://www.mongodb.org
[2] - http://www.playframework.org/modules/morphia
[3] - http://sna-projects.com/cleo/
[4] - http://linkedin.github.com/sensei/gettingStarted.html

--

Hi David,

I ended up building my own. Although I am still using Play, I am now using
AngularJS instead of JQuery. I needed to implement an AJAX application, but
I didn't want my client code coupled to the implementation of ES, nor did I
want to expose the full ES API. So I built an application layer in my Play
code that takes application specific query parameters and queries ES using
the Java API and it builds an application specific search result object.
This way I can apply some validation and control over the parameters. The
application search serializes the results to JSON much like ES.

The client code in the browser is written in javascript using AngularJShttp://angularjs.org/with a service that knows how to query the application layer and a handful
of controllers and templates for the query box, filters, results table,
paging controls, etc.

Mark

On Tuesday, November 20, 2012 4:38:48 AM UTC-8, David Ford wrote:

Hi Mark - I'm also keen to see if there's any user interfaces for ES out
there. Did you end up finding one, or did you have to build your own using
jQuery?? Thanks!

David

On Monday, 5 March 2012 14:30:15 UTC+10, Mark Waddle wrote:

Hello,

Interestingly, I am building a new application using a very similar stack
... Play!/MongoDB/Elasticsearch ... I am working on the same problems.

Regarding data model: The items I am storing in my database and indexing
are easily modeled as documents, so I am doing that. I am making no attempt
to normalize them.

Regarding Mongo to ES: I have done some reading on the river, but there
are accounts of memory issues. I do not think it is stable yet. Shay has
mentioned an architecture in another thread in this group (search for
mongodb elasticsearch river), but he did say that it is not implemented and
that it is likely quite a bit of effort. I have a custom application that
processes the data in batches to insert into mongodb. For now I will be
modifying it to also hand the document to ES for indexing. My documents do
not change so this works for me.

Regarding search interface: I don't know of anything out there. I have
built a few search interfaces in the past and I plan to custom build this
one as well with heavy use of jQuery.

Type ahead: I plan to implement this as well, but only for facet values,
so I will have a finite list of values to filter on with my UI controls.
Others have asked how to do this for general search terms based on the
terms in the index, but I have not seen any great solutions yet. Try
searching the group.

Mark

On Sunday, March 4, 2012 9:51:49 AM UTC-8, Michal Karták wrote:

Hi,

first of all thanks Mr. Banon and all of you, who contributing to ES.
It simply rocks !

Since i am new to ES and also to NoSQL world i'd like to ask some
questions about ES and integration with other technologies.

Currently i work on a web application that consists of
0) Play! Framework, as an application framework [0] ,
1) MongoDB, as a persistent datastore [1]
2) PlayMorphia, as an Document-Object mapper [2]
3) Elasticsearch, as a search engine

My goals:

  • to implement search-centric application with strong use of faceted
    search, typeahead mechanism, cloud ready
  • i also like to show facets according to search context ( reduce
    information overload of user interface )
  • my data set is relatively small, about 5 types of documents / up to
    2000 of each type / up to 30 primitive fields per document

Challenges:
0) How to model data in MongoDB and then map then to ES ?
Q1: should i use much more Embedding instead of Referencing =>
index one big (not flat) document ?
Q1: or rather use much more normalized model => index entities
separately (each is flat) ?

1) How to efficiently index Mongodb ?
   Possible solutions:
- manually, utilizing Morphia's lifecycle methods. ... costs more 

code, but have more controll over the whole process
- using the MongoDB river plugin. ...black box solution, must have
well designed db model and mapping to work well :wink:

- Ok, there is also a Play/MongoDB/ES integration module, but it not 

works well for me
Q2: Have i left out something ?

2) How to implement front-end faceted search user interface ?
(Im)possible solutions:
     - javascript search-oriented ui framework. It not exists, yet 

:smiley: (?)
- Elasticsearch's UI framework. It not exists, yet :smiley:
- use SenseiDB's [4] web console. Integration may not be
possible. I'd like to use ES.

     - Ok, the last solution is to have knowledge of ajax/js and 

write it for myself.
Q3: Have i left out something ?

3) How to implement typeahead functionality ?
     Q4: has somebody experienced Cleo [3] integration with ES ?
     Q5: is there ES API to do typeahead ?

Thanks for any helpful info.

Michal

[0] - http://www.playframework.org
[1] - http://www.mongodb.org
[2] - http://www.playframework.org/modules/morphia
[3] - http://sna-projects.com/cleo/
[4] - http://linkedin.github.com/sensei/gettingStarted.html

On Sunday, March 4, 2012 9:51:49 AM UTC-8, Michal Karták wrote:

Hi,

first of all thanks Mr. Banon and all of you, who contributing to ES.
It simply rocks !

Since i am new to ES and also to NoSQL world i'd like to ask some
questions about ES and integration with other technologies.

Currently i work on a web application that consists of
0) Play! Framework, as an application framework [0] ,
1) MongoDB, as a persistent datastore [1]
2) PlayMorphia, as an Document-Object mapper [2]
3) Elasticsearch, as a search engine

My goals:

  • to implement search-centric application with strong use of faceted
    search, typeahead mechanism, cloud ready
  • i also like to show facets according to search context ( reduce
    information overload of user interface )
  • my data set is relatively small, about 5 types of documents / up to
    2000 of each type / up to 30 primitive fields per document

Challenges:
0) How to model data in MongoDB and then map then to ES ?
Q1: should i use much more Embedding instead of Referencing =>
index one big (not flat) document ?
Q1: or rather use much more normalized model => index entities
separately (each is flat) ?

1) How to efficiently index Mongodb ?
   Possible solutions:
- manually, utilizing Morphia's lifecycle methods. ... costs more 

code, but have more controll over the whole process
- using the MongoDB river plugin. ...black box solution, must have
well designed db model and mapping to work well :wink:

- Ok, there is also a Play/MongoDB/ES integration module, but it not 

works well for me
Q2: Have i left out something ?

2) How to implement front-end faceted search user interface ?
(Im)possible solutions:
     - javascript search-oriented ui framework. It not exists, yet 

:smiley: (?)
- Elasticsearch's UI framework. It not exists, yet :smiley:
- use SenseiDB's [4] web console. Integration may not be
possible. I'd like to use ES.

     - Ok, the last solution is to have knowledge of ajax/js and 

write it for myself.
Q3: Have i left out something ?

3) How to implement typeahead functionality ?
     Q4: has somebody experienced Cleo [3] integration with ES ?
     Q5: is there ES API to do typeahead ?

Thanks for any helpful info.

Michal

[0] - http://www.playframework.org
[1] - http://www.mongodb.org
[2] - http://www.playframework.org/modules/morphia
[3] - http://sna-projects.com/cleo/
[4] - http://linkedin.github.com/sensei/gettingStarted.html

--

Mark - sorry, I missed this response (I have to get rid of 'cruft
emails!'). I'll have a look at Angular - it could be an alternative to
jQuery for us as well (as you've mentioned).

Incidentally - is the front-end you've developed able to be used for other
projects? We'd love to take a look at it if possible, and potentially
even contribute to its growth!

Cheers

David

On 27 November 2012 17:41, Mark Waddle mark@markwaddle.com wrote:

Hi David,

I ended up building my own. Although I am still using Play, I am now using
AngularJS instead of JQuery. I needed to implement an AJAX application, but
I didn't want my client code coupled to the implementation of ES, nor did I
want to expose the full ES API. So I built an application layer in my Play
code that takes application specific query parameters and queries ES using
the Java API and it builds an application specific search result object.
This way I can apply some validation and control over the parameters. The
application search serializes the results to JSON much like ES.

The client code in the browser is written in javascript using AngularJShttp://angularjs.org/with a service that knows how to query the application layer and a handful
of controllers and templates for the query box, filters, results table,
paging controls, etc.

Mark

On Tuesday, November 20, 2012 4:38:48 AM UTC-8, David Ford wrote:

Hi Mark - I'm also keen to see if there's any user interfaces for ES out
there. Did you end up finding one, or did you have to build your own using
jQuery?? Thanks!

David

On Monday, 5 March 2012 14:30:15 UTC+10, Mark Waddle wrote:

Hello,

Interestingly, I am building a new application using a very similar
stack ... Play!/MongoDB/Elasticsearch ... I am working on the same problems.

Regarding data model: The items I am storing in my database and indexing
are easily modeled as documents, so I am doing that. I am making no attempt
to normalize them.

Regarding Mongo to ES: I have done some reading on the river, but there
are accounts of memory issues. I do not think it is stable yet. Shay has
mentioned an architecture in another thread in this group (search for
mongodb elasticsearch river), but he did say that it is not implemented and
that it is likely quite a bit of effort. I have a custom application that
processes the data in batches to insert into mongodb. For now I will be
modifying it to also hand the document to ES for indexing. My documents do
not change so this works for me.

Regarding search interface: I don't know of anything out there. I have
built a few search interfaces in the past and I plan to custom build this
one as well with heavy use of jQuery.

Type ahead: I plan to implement this as well, but only for facet values,
so I will have a finite list of values to filter on with my UI controls.
Others have asked how to do this for general search terms based on the
terms in the index, but I have not seen any great solutions yet. Try
searching the group.

Mark

On Sunday, March 4, 2012 9:51:49 AM UTC-8, Michal Karták wrote:

Hi,

first of all thanks Mr. Banon and all of you, who contributing to ES.
It simply rocks !

Since i am new to ES and also to NoSQL world i'd like to ask some
questions about ES and integration with other technologies.

Currently i work on a web application that consists of
0) Play! Framework, as an application framework [0] ,
1) MongoDB, as a persistent datastore [1]
2) PlayMorphia, as an Document-Object mapper [2]
3) Elasticsearch, as a search engine

My goals:

  • to implement search-centric application with strong use of faceted
    search, typeahead mechanism, cloud ready
  • i also like to show facets according to search context ( reduce
    information overload of user interface )
  • my data set is relatively small, about 5 types of documents / up
    to 2000 of each type / up to 30 primitive fields per document

Challenges:
0) How to model data in MongoDB and then map then to ES ?
Q1: should i use much more Embedding instead of Referencing =>
index one big (not flat) document ?
Q1: or rather use much more normalized model => index entities
separately (each is flat) ?

1) How to efficiently index Mongodb ?
   Possible solutions:
- manually, utilizing Morphia's lifecycle methods. ... costs more

code, but have more controll over the whole process
- using the MongoDB river plugin. ...black box solution, must have
well designed db model and mapping to work well :wink:

- Ok, there is also a Play/MongoDB/ES integration module, but it

not works well for me
Q2: Have i left out something ?

2) How to implement front-end faceted search user interface ?
(Im)possible solutions:
     - javascript search-oriented ui framework. It not exists, yet

:smiley: (?)
- Elasticsearch's UI framework. It not exists, yet :smiley:
- use SenseiDB's [4] web console. Integration may not be
possible. I'd like to use ES.

     - Ok, the last solution is to have knowledge of ajax/js and

write it for myself.
Q3: Have i left out something ?

3) How to implement typeahead functionality ?
     Q4: has somebody experienced Cleo [3] integration with ES ?
     Q5: is there ES API to do typeahead ?

Thanks for any helpful info.

Michal

[0] - http://www.playframework.org
[1] - http://www.mongodb.org
[2] - http://www.playframework.org/**modules/morphiahttp://www.playframework.org/modules/morphia
[3] - http://sna-projects.com/cleo/
[4] - http://linkedin.github.com/**sensei/gettingStarted.htmlhttp://linkedin.github.com/sensei/gettingStarted.html

On Sunday, March 4, 2012 9:51:49 AM UTC-8, Michal Karták wrote:

Hi,

first of all thanks Mr. Banon and all of you, who contributing to ES.
It simply rocks !

Since i am new to ES and also to NoSQL world i'd like to ask some
questions about ES and integration with other technologies.

Currently i work on a web application that consists of
0) Play! Framework, as an application framework [0] ,
1) MongoDB, as a persistent datastore [1]
2) PlayMorphia, as an Document-Object mapper [2]
3) Elasticsearch, as a search engine

My goals:

  • to implement search-centric application with strong use of faceted
    search, typeahead mechanism, cloud ready
  • i also like to show facets according to search context ( reduce
    information overload of user interface )
  • my data set is relatively small, about 5 types of documents / up
    to 2000 of each type / up to 30 primitive fields per document

Challenges:
0) How to model data in MongoDB and then map then to ES ?
Q1: should i use much more Embedding instead of Referencing =>
index one big (not flat) document ?
Q1: or rather use much more normalized model => index entities
separately (each is flat) ?

1) How to efficiently index Mongodb ?
   Possible solutions:
- manually, utilizing Morphia's lifecycle methods. ... costs more

code, but have more controll over the whole process
- using the MongoDB river plugin. ...black box solution, must have
well designed db model and mapping to work well :wink:

- Ok, there is also a Play/MongoDB/ES integration module, but it

not works well for me
Q2: Have i left out something ?

2) How to implement front-end faceted search user interface ?
(Im)possible solutions:
     - javascript search-oriented ui framework. It not exists, yet

:smiley: (?)
- Elasticsearch's UI framework. It not exists, yet :smiley:
- use SenseiDB's [4] web console. Integration may not be
possible. I'd like to use ES.

     - Ok, the last solution is to have knowledge of ajax/js and

write it for myself.
Q3: Have i left out something ?

3) How to implement typeahead functionality ?
     Q4: has somebody experienced Cleo [3] integration with ES ?
     Q5: is there ES API to do typeahead ?

Thanks for any helpful info.

Michal

[0] - http://www.playframework.org
[1] - http://www.mongodb.org
[2] - http://www.playframework.org/**modules/morphiahttp://www.playframework.org/modules/morphia
[3] - http://sna-projects.com/cleo/
[4] - http://linkedin.github.com/**sensei/gettingStarted.htmlhttp://linkedin.github.com/sensei/gettingStarted.html

--

--
Best regards

David Ford
0421 659 552
24.6.2013

--

Any news on this solution? How'd it go? What approach did you take? Etc?

On Wednesday, November 28, 2012 7:39:47 PM UTC-8, David Ford wrote:

Mark - sorry, I missed this response (I have to get rid of 'cruft
emails!'). I'll have a look at Angular - it could be an alternative to
jQuery for us as well (as you've mentioned).

Incidentally - is the front-end you've developed able to be used for other
projects? We'd love to take a look at it if possible, and potentially
even contribute to its growth!

Cheers

David

On 27 November 2012 17:41, Mark Waddle <ma...@markwaddle.com <javascript:>

wrote:

Hi David,

I ended up building my own. Although I am still using Play, I am now
using AngularJS instead of JQuery. I needed to implement an AJAX
application, but I didn't want my client code coupled to the implementation
of ES, nor did I want to expose the full ES API. So I built an application
layer in my Play code that takes application specific query parameters and
queries ES using the Java API and it builds an application specific search
result object. This way I can apply some validation and control over the
parameters. The application search serializes the results to JSON much like
ES.

The client code in the browser is written in javascript using AngularJShttp://angularjs.org/with a service that knows how to query the application layer and a handful
of controllers and templates for the query box, filters, results table,
paging controls, etc.

Mark

On Tuesday, November 20, 2012 4:38:48 AM UTC-8, David Ford wrote:

Hi Mark - I'm also keen to see if there's any user interfaces for ES out
there. Did you end up finding one, or did you have to build your own using
jQuery?? Thanks!

David

On Monday, 5 March 2012 14:30:15 UTC+10, Mark Waddle wrote:

Hello,

Interestingly, I am building a new application using a very similar
stack ... Play!/MongoDB/Elasticsearch ... I am working on the same problems.

Regarding data model: The items I am storing in my database and
indexing are easily modeled as documents, so I am doing that. I am making
no attempt to normalize them.

Regarding Mongo to ES: I have done some reading on the river, but there
are accounts of memory issues. I do not think it is stable yet. Shay has
mentioned an architecture in another thread in this group (search for
mongodb elasticsearch river), but he did say that it is not implemented and
that it is likely quite a bit of effort. I have a custom application that
processes the data in batches to insert into mongodb. For now I will be
modifying it to also hand the document to ES for indexing. My documents do
not change so this works for me.

Regarding search interface: I don't know of anything out there. I have
built a few search interfaces in the past and I plan to custom build this
one as well with heavy use of jQuery.

Type ahead: I plan to implement this as well, but only for facet
values, so I will have a finite list of values to filter on with my UI
controls. Others have asked how to do this for general search terms based
on the terms in the index, but I have not seen any great solutions yet. Try
searching the group.

Mark

On Sunday, March 4, 2012 9:51:49 AM UTC-8, Michal Karták wrote:

Hi,

first of all thanks Mr. Banon and all of you, who contributing to ES.
It simply rocks !

Since i am new to ES and also to NoSQL world i'd like to ask some
questions about ES and integration with other technologies.

Currently i work on a web application that consists of
0) Play! Framework, as an application framework [0] ,
1) MongoDB, as a persistent datastore [1]
2) PlayMorphia, as an Document-Object mapper [2]
3) Elasticsearch, as a search engine

My goals:

  • to implement search-centric application with strong use of
    faceted search, typeahead mechanism, cloud ready
  • i also like to show facets according to search context ( reduce
    information overload of user interface )
  • my data set is relatively small, about 5 types of documents / up
    to 2000 of each type / up to 30 primitive fields per document

Challenges:
0) How to model data in MongoDB and then map then to ES ?
Q1: should i use much more Embedding instead of Referencing
=> index one big (not flat) document ?
Q1: or rather use much more normalized model => index
entities separately (each is flat) ?

1) How to efficiently index Mongodb ?
   Possible solutions:
- manually, utilizing Morphia's lifecycle methods. ... costs more 

code, but have more controll over the whole process
- using the MongoDB river plugin. ...black box solution, must
have well designed db model and mapping to work well :wink:

- Ok, there is also a Play/MongoDB/ES integration module, but it 

not works well for me
Q2: Have i left out something ?

2) How to implement front-end faceted search user interface ?
(Im)possible solutions:
     - javascript search-oriented ui framework. It not exists, yet 

:smiley: (?)
- Elasticsearch's UI framework. It not exists, yet :smiley:
- use SenseiDB's [4] web console. Integration may not be
possible. I'd like to use ES.

     - Ok, the last solution is to have knowledge of ajax/js and 

write it for myself.
Q3: Have i left out something ?

3) How to implement typeahead functionality ?
     Q4: has somebody experienced Cleo [3] integration with ES ?
     Q5: is there ES API to do typeahead ?

Thanks for any helpful info.

Michal

[0] - http://www.playframework.org
[1] - http://www.mongodb.org
[2] - http://www.playframework.org/**modules/morphiahttp://www.playframework.org/modules/morphia
[3] - http://sna-projects.com/cleo/
[4] - http://linkedin.github.com/**sensei/gettingStarted.htmlhttp://linkedin.github.com/sensei/gettingStarted.html

On Sunday, March 4, 2012 9:51:49 AM UTC-8, Michal Karták wrote:

Hi,

first of all thanks Mr. Banon and all of you, who contributing to ES.
It simply rocks !

Since i am new to ES and also to NoSQL world i'd like to ask some
questions about ES and integration with other technologies.

Currently i work on a web application that consists of
0) Play! Framework, as an application framework [0] ,
1) MongoDB, as a persistent datastore [1]
2) PlayMorphia, as an Document-Object mapper [2]
3) Elasticsearch, as a search engine

My goals:

  • to implement search-centric application with strong use of
    faceted search, typeahead mechanism, cloud ready
  • i also like to show facets according to search context ( reduce
    information overload of user interface )
  • my data set is relatively small, about 5 types of documents / up
    to 2000 of each type / up to 30 primitive fields per document

Challenges:
0) How to model data in MongoDB and then map then to ES ?
Q1: should i use much more Embedding instead of Referencing
=> index one big (not flat) document ?
Q1: or rather use much more normalized model => index
entities separately (each is flat) ?

1) How to efficiently index Mongodb ?
   Possible solutions:
- manually, utilizing Morphia's lifecycle methods. ... costs more 

code, but have more controll over the whole process
- using the MongoDB river plugin. ...black box solution, must
have well designed db model and mapping to work well :wink:

- Ok, there is also a Play/MongoDB/ES integration module, but it 

not works well for me
Q2: Have i left out something ?

2) How to implement front-end faceted search user interface ?
(Im)possible solutions:
     - javascript search-oriented ui framework. It not exists, yet 

:smiley: (?)
- Elasticsearch's UI framework. It not exists, yet :smiley:
- use SenseiDB's [4] web console. Integration may not be
possible. I'd like to use ES.

     - Ok, the last solution is to have knowledge of ajax/js and 

write it for myself.
Q3: Have i left out something ?

3) How to implement typeahead functionality ?
     Q4: has somebody experienced Cleo [3] integration with ES ?
     Q5: is there ES API to do typeahead ?

Thanks for any helpful info.

Michal

[0] - http://www.playframework.org
[1] - http://www.mongodb.org
[2] - http://www.playframework.org/**modules/morphiahttp://www.playframework.org/modules/morphia
[3] - http://sna-projects.com/cleo/
[4] - http://linkedin.github.com/**sensei/gettingStarted.htmlhttp://linkedin.github.com/sensei/gettingStarted.html

--

--
Best regards

David Ford
0421 659 552
24.6.2013

--
You received this message because you are subscribed to the Google Groups "elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email to elasticsearch+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Sorry Jan - no advances at our end. Let me know how your project goes!

Cheers

David

On 30 May 2013 07:43, Jan Drake jan.s.drake@gmail.com wrote:

Any news on this solution? How'd it go? What approach did you take? Etc?

On Wednesday, November 28, 2012 7:39:47 PM UTC-8, David Ford wrote:

Mark - sorry, I missed this response (I have to get rid of 'cruft
emails!'). I'll have a look at Angular - it could be an alternative to
jQuery for us as well (as you've mentioned).

Incidentally - is the front-end you've developed able to be used for
other projects? We'd love to take a look at it if possible, and
potentially even contribute to its growth!

Cheers

David

On 27 November 2012 17:41, Mark Waddle ma...@markwaddle.com wrote:

Hi David,

I ended up building my own. Although I am still using Play, I am now
using AngularJS instead of JQuery. I needed to implement an AJAX
application, but I didn't want my client code coupled to the implementation
of ES, nor did I want to expose the full ES API. So I built an application
layer in my Play code that takes application specific query parameters and
queries ES using the Java API and it builds an application specific search
result object. This way I can apply some validation and control over the
parameters. The application search serializes the results to JSON much like
ES.

The client code in the browser is written in javascript using AngularJShttp://angularjs.org/with a service that knows how to query the application layer and a handful
of controllers and templates for the query box, filters, results table,
paging controls, etc.

Mark

On Tuesday, November 20, 2012 4:38:48 AM UTC-8, David Ford wrote:

Hi Mark - I'm also keen to see if there's any user interfaces for ES
out there. Did you end up finding one, or did you have to build your own
using jQuery?? Thanks!

David

On Monday, 5 March 2012 14:30:15 UTC+10, Mark Waddle wrote:

Hello,

Interestingly, I am building a new application using a very similar
stack ... Play!/MongoDB/Elasticsearch ... I am working on the same problems.

Regarding data model: The items I am storing in my database and
indexing are easily modeled as documents, so I am doing that. I am making
no attempt to normalize them.

Regarding Mongo to ES: I have done some reading on the river, but
there are accounts of memory issues. I do not think it is stable yet. Shay
has mentioned an architecture in another thread in this group (search for
mongodb elasticsearch river), but he did say that it is not implemented and
that it is likely quite a bit of effort. I have a custom application that
processes the data in batches to insert into mongodb. For now I will be
modifying it to also hand the document to ES for indexing. My documents do
not change so this works for me.

Regarding search interface: I don't know of anything out there. I have
built a few search interfaces in the past and I plan to custom build this
one as well with heavy use of jQuery.

Type ahead: I plan to implement this as well, but only for facet
values, so I will have a finite list of values to filter on with my UI
controls. Others have asked how to do this for general search terms based
on the terms in the index, but I have not seen any great solutions yet. Try
searching the group.

Mark

On Sunday, March 4, 2012 9:51:49 AM UTC-8, Michal Karták wrote:

Hi,

first of all thanks Mr. Banon and all of you, who contributing to
ES. It simply rocks !

Since i am new to ES and also to NoSQL world i'd like to ask some
questions about ES and integration with other technologies.

Currently i work on a web application that consists of
0) Play! Framework, as an application framework [0] ,
1) MongoDB, as a persistent datastore [1]
2) PlayMorphia, as an Document-Object mapper [2]
3) Elasticsearch, as a search engine

My goals:

  • to implement search-centric application with strong use of
    faceted search, typeahead mechanism, cloud ready
  • i also like to show facets according to search context ( reduce
    information overload of user interface )
  • my data set is relatively small, about 5 types of documents / up
    to 2000 of each type / up to 30 primitive fields per document

Challenges:
0) How to model data in MongoDB and then map then to ES ?
Q1: should i use much more Embedding instead of Referencing
=> index one big (not flat) document ?
Q1: or rather use much more normalized model => index
entities separately (each is flat) ?

1) How to efficiently index Mongodb ?
   Possible solutions:
- manually, utilizing Morphia's lifecycle methods. ... costs more

code, but have more controll over the whole process
- using the MongoDB river plugin. ...black box solution, must
have well designed db model and mapping to work well :wink:

- Ok, there is also a Play/MongoDB/ES integration module, but it

not works well for me
Q2: Have i left out something ?

2) How to implement front-end faceted search user interface ?
(Im)possible solutions:
     - javascript search-oriented ui framework. It not exists,

yet :smiley: (?)
- Elasticsearch's UI framework. It not exists, yet :smiley:
- use SenseiDB's [4] web console. Integration may not be
possible. I'd like to use ES.

     - Ok, the last solution is to have knowledge of ajax/js and

write it for myself.
Q3: Have i left out something ?

3) How to implement typeahead functionality ?
     Q4: has somebody experienced Cleo [3] integration with ES ?
     Q5: is there ES API to do typeahead ?

Thanks for any helpful info.

Michal

[0] - http://www.playframework.org
[1] - http://www.mongodb.org
[2] - http://www.playframework.org/**m**odules/morphiahttp://www.playframework.org/modules/morphia
[3] - http://sna-projects.com/cleo/
[4] - http://linkedin.github.com/**sen**sei/gettingStarted.htmlhttp://linkedin.github.com/sensei/gettingStarted.html

On Sunday, March 4, 2012 9:51:49 AM UTC-8, Michal Karták wrote:

Hi,

first of all thanks Mr. Banon and all of you, who contributing to
ES. It simply rocks !

Since i am new to ES and also to NoSQL world i'd like to ask some
questions about ES and integration with other technologies.

Currently i work on a web application that consists of
0) Play! Framework, as an application framework [0] ,
1) MongoDB, as a persistent datastore [1]
2) PlayMorphia, as an Document-Object mapper [2]
3) Elasticsearch, as a search engine

My goals:

  • to implement search-centric application with strong use of
    faceted search, typeahead mechanism, cloud ready
  • i also like to show facets according to search context ( reduce
    information overload of user interface )
  • my data set is relatively small, about 5 types of documents / up
    to 2000 of each type / up to 30 primitive fields per document

Challenges:
0) How to model data in MongoDB and then map then to ES ?
Q1: should i use much more Embedding instead of Referencing
=> index one big (not flat) document ?
Q1: or rather use much more normalized model => index
entities separately (each is flat) ?

1) How to efficiently index Mongodb ?
   Possible solutions:
- manually, utilizing Morphia's lifecycle methods. ... costs more

code, but have more controll over the whole process
- using the MongoDB river plugin. ...black box solution, must
have well designed db model and mapping to work well :wink:

- Ok, there is also a Play/MongoDB/ES integration module, but it

not works well for me
Q2: Have i left out something ?

2) How to implement front-end faceted search user interface ?
(Im)possible solutions:
     - javascript search-oriented ui framework. It not exists,

yet :smiley: (?)
- Elasticsearch's UI framework. It not exists, yet :smiley:
- use SenseiDB's [4] web console. Integration may not be
possible. I'd like to use ES.

     - Ok, the last solution is to have knowledge of ajax/js and

write it for myself.
Q3: Have i left out something ?

3) How to implement typeahead functionality ?
     Q4: has somebody experienced Cleo [3] integration with ES ?
     Q5: is there ES API to do typeahead ?

Thanks for any helpful info.

Michal

[0] - http://www.playframework.org
[1] - http://www.mongodb.org
[2] - http://www.playframework.org/**m**odules/morphiahttp://www.playframework.org/modules/morphia
[3] - http://sna-projects.com/cleo/
[4] - http://linkedin.github.com/**sen**sei/gettingStarted.htmlhttp://linkedin.github.com/sensei/gettingStarted.html

--

--
Best regards

David Ford
0421 659 552
24.6.2013

--
You received this message because you are subscribed to a topic in the
Google Groups "elasticsearch" group.
To unsubscribe from this topic, visit
https://groups.google.com/d/topic/elasticsearch/4C5SWmu3hnI/unsubscribe?hl=en-US
.
To unsubscribe from this group and all its topics, send an email to
elasticsearch+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

--
Best regards

David Ford
0421 659 552
24.6.2013

--
You received this message because you are subscribed to the Google Groups "elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email to elasticsearch+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

I found this article helpful:

http://www.fullscale.co/blog/2013/03/07/getting_started_with_elasticsearch_and-AngularJS_faceting.html

2013/5/30 David Ford davidfordaus@gmail.com

Sorry Jan - no advances at our end. Let me know how your project goes!

Cheers

David

On 30 May 2013 07:43, Jan Drake jan.s.drake@gmail.com wrote:

Any news on this solution? How'd it go? What approach did you take? Etc?

On Wednesday, November 28, 2012 7:39:47 PM UTC-8, David Ford wrote:

Mark - sorry, I missed this response (I have to get rid of 'cruft
emails!'). I'll have a look at Angular - it could be an alternative to
jQuery for us as well (as you've mentioned).

Incidentally - is the front-end you've developed able to be used for
other projects? We'd love to take a look at it if possible, and
potentially even contribute to its growth!

Cheers

David

On 27 November 2012 17:41, Mark Waddle ma...@markwaddle.com wrote:

Hi David,

I ended up building my own. Although I am still using Play, I am now
using AngularJS instead of JQuery. I needed to implement an AJAX
application, but I didn't want my client code coupled to the implementation
of ES, nor did I want to expose the full ES API. So I built an application
layer in my Play code that takes application specific query parameters and
queries ES using the Java API and it builds an application specific search
result object. This way I can apply some validation and control over the
parameters. The application search serializes the results to JSON much like
ES.

The client code in the browser is written in javascript using AngularJShttp://angularjs.org/with a service that knows how to query the application layer and a handful
of controllers and templates for the query box, filters, results table,
paging controls, etc.

Mark

On Tuesday, November 20, 2012 4:38:48 AM UTC-8, David Ford wrote:

Hi Mark - I'm also keen to see if there's any user interfaces for ES
out there. Did you end up finding one, or did you have to build your own
using jQuery?? Thanks!

David

On Monday, 5 March 2012 14:30:15 UTC+10, Mark Waddle wrote:

Hello,

Interestingly, I am building a new application using a very similar
stack ... Play!/MongoDB/Elasticsearch ... I am working on the same problems.

Regarding data model: The items I am storing in my database and
indexing are easily modeled as documents, so I am doing that. I am making
no attempt to normalize them.

Regarding Mongo to ES: I have done some reading on the river, but
there are accounts of memory issues. I do not think it is stable yet. Shay
has mentioned an architecture in another thread in this group (search for
mongodb elasticsearch river), but he did say that it is not implemented and
that it is likely quite a bit of effort. I have a custom application that
processes the data in batches to insert into mongodb. For now I will be
modifying it to also hand the document to ES for indexing. My documents do
not change so this works for me.

Regarding search interface: I don't know of anything out there. I
have built a few search interfaces in the past and I plan to custom build
this one as well with heavy use of jQuery.

Type ahead: I plan to implement this as well, but only for facet
values, so I will have a finite list of values to filter on with my UI
controls. Others have asked how to do this for general search terms based
on the terms in the index, but I have not seen any great solutions yet. Try
searching the group.

Mark

On Sunday, March 4, 2012 9:51:49 AM UTC-8, Michal Karták wrote:

Hi,

first of all thanks Mr. Banon and all of you, who contributing to
ES. It simply rocks !

Since i am new to ES and also to NoSQL world i'd like to ask some
questions about ES and integration with other technologies.

Currently i work on a web application that consists of
0) Play! Framework, as an application framework [0] ,
1) MongoDB, as a persistent datastore [1]
2) PlayMorphia, as an Document-Object mapper [2]
3) Elasticsearch, as a search engine

My goals:

  • to implement search-centric application with strong use of
    faceted search, typeahead mechanism, cloud ready
  • i also like to show facets according to search context ( reduce
    information overload of user interface )
  • my data set is relatively small, about 5 types of documents /
    up to 2000 of each type / up to 30 primitive fields per document

Challenges:
0) How to model data in MongoDB and then map then to ES ?
Q1: should i use much more Embedding instead of Referencing
=> index one big (not flat) document ?
Q1: or rather use much more normalized model => index
entities separately (each is flat) ?

1) How to efficiently index Mongodb ?
   Possible solutions:
- manually, utilizing Morphia's lifecycle methods. ... costs

more code, but have more controll over the whole process
- using the MongoDB river plugin. ...black box solution, must
have well designed db model and mapping to work well :wink:

- Ok, there is also a Play/MongoDB/ES integration module, but it

not works well for me
Q2: Have i left out something ?

2) How to implement front-end faceted search user interface ?
(Im)possible solutions:
     - javascript search-oriented ui framework. It not exists,

yet :smiley: (?)
- Elasticsearch's UI framework. It not exists, yet :smiley:
- use SenseiDB's [4] web console. Integration may not be
possible. I'd like to use ES.

     - Ok, the last solution is to have knowledge of ajax/js and

write it for myself.
Q3: Have i left out something ?

3) How to implement typeahead functionality ?
     Q4: has somebody experienced Cleo [3] integration with ES ?
     Q5: is there ES API to do typeahead ?

Thanks for any helpful info.

Michal

[0] - http://www.playframework.org
[1] - http://www.mongodb.org
[2] - http://www.playframework.org/**m**odules/morphiahttp://www.playframework.org/modules/morphia
[3] - http://sna-projects.com/cleo/
[4] - http://linkedin.github.com/**sen**sei/gettingStarted.htmlhttp://linkedin.github.com/sensei/gettingStarted.html

On Sunday, March 4, 2012 9:51:49 AM UTC-8, Michal Karták wrote:

Hi,

first of all thanks Mr. Banon and all of you, who contributing to
ES. It simply rocks !

Since i am new to ES and also to NoSQL world i'd like to ask some
questions about ES and integration with other technologies.

Currently i work on a web application that consists of
0) Play! Framework, as an application framework [0] ,
1) MongoDB, as a persistent datastore [1]
2) PlayMorphia, as an Document-Object mapper [2]
3) Elasticsearch, as a search engine

My goals:

  • to implement search-centric application with strong use of
    faceted search, typeahead mechanism, cloud ready
  • i also like to show facets according to search context ( reduce
    information overload of user interface )
  • my data set is relatively small, about 5 types of documents /
    up to 2000 of each type / up to 30 primitive fields per document

Challenges:
0) How to model data in MongoDB and then map then to ES ?
Q1: should i use much more Embedding instead of Referencing
=> index one big (not flat) document ?
Q1: or rather use much more normalized model => index
entities separately (each is flat) ?

1) How to efficiently index Mongodb ?
   Possible solutions:
- manually, utilizing Morphia's lifecycle methods. ... costs

more code, but have more controll over the whole process
- using the MongoDB river plugin. ...black box solution, must
have well designed db model and mapping to work well :wink:

- Ok, there is also a Play/MongoDB/ES integration module, but it

not works well for me
Q2: Have i left out something ?

2) How to implement front-end faceted search user interface ?
(Im)possible solutions:
     - javascript search-oriented ui framework. It not exists,

yet :smiley: (?)
- Elasticsearch's UI framework. It not exists, yet :smiley:
- use SenseiDB's [4] web console. Integration may not be
possible. I'd like to use ES.

     - Ok, the last solution is to have knowledge of ajax/js and

write it for myself.
Q3: Have i left out something ?

3) How to implement typeahead functionality ?
     Q4: has somebody experienced Cleo [3] integration with ES ?
     Q5: is there ES API to do typeahead ?

Thanks for any helpful info.

Michal

[0] - http://www.playframework.org
[1] - http://www.mongodb.org
[2] - http://www.playframework.org/**m**odules/morphiahttp://www.playframework.org/modules/morphia
[3] - http://sna-projects.com/cleo/
[4] - http://linkedin.github.com/**sen**sei/gettingStarted.htmlhttp://linkedin.github.com/sensei/gettingStarted.html

--

--
Best regards

David Ford
0421 659 552
24.6.2013

--
You received this message because you are subscribed to a topic in the
Google Groups "elasticsearch" group.
To unsubscribe from this topic, visit
https://groups.google.com/d/topic/elasticsearch/4C5SWmu3hnI/unsubscribe?hl=en-US
.
To unsubscribe from this group and all its topics, send an email to
elasticsearch+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

--
Best regards

David Ford
0421 659 552
24.6.2013

--
You received this message because you are subscribed to a topic in the
Google Groups "elasticsearch" group.
To unsubscribe from this topic, visit
https://groups.google.com/d/topic/elasticsearch/4C5SWmu3hnI/unsubscribe?hl=en-US
.
To unsubscribe from this group and all its topics, send an email to
elasticsearch+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

--
You received this message because you are subscribed to the Google Groups "elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email to elasticsearch+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

PS: i use spring-data-elasticsearch and spring-data-mongodb for
synchronizing elasticsearch with mongodb on backend

2013/5/30 Michal Karták michal@kartak.cz

I found this article helpful:

The domain name Fullscale.co is for sale | Dan.com

2013/5/30 David Ford davidfordaus@gmail.com

Sorry Jan - no advances at our end. Let me know how your project goes!

Cheers

David

On 30 May 2013 07:43, Jan Drake jan.s.drake@gmail.com wrote:

Any news on this solution? How'd it go? What approach did you take?
Etc?

On Wednesday, November 28, 2012 7:39:47 PM UTC-8, David Ford wrote:

Mark - sorry, I missed this response (I have to get rid of 'cruft
emails!'). I'll have a look at Angular - it could be an alternative to
jQuery for us as well (as you've mentioned).

Incidentally - is the front-end you've developed able to be used for
other projects? We'd love to take a look at it if possible, and
potentially even contribute to its growth!

Cheers

David

On 27 November 2012 17:41, Mark Waddle ma...@markwaddle.com wrote:

Hi David,

I ended up building my own. Although I am still using Play, I am now
using AngularJS instead of JQuery. I needed to implement an AJAX
application, but I didn't want my client code coupled to the implementation
of ES, nor did I want to expose the full ES API. So I built an application
layer in my Play code that takes application specific query parameters and
queries ES using the Java API and it builds an application specific search
result object. This way I can apply some validation and control over the
parameters. The application search serializes the results to JSON much like
ES.

The client code in the browser is written in javascript using
AngularJS http://angularjs.org/ with a service that knows how to
query the application layer and a handful of controllers and templates for
the query box, filters, results table, paging controls, etc.

Mark

On Tuesday, November 20, 2012 4:38:48 AM UTC-8, David Ford wrote:

Hi Mark - I'm also keen to see if there's any user interfaces for ES
out there. Did you end up finding one, or did you have to build your own
using jQuery?? Thanks!

David

On Monday, 5 March 2012 14:30:15 UTC+10, Mark Waddle wrote:

Hello,

Interestingly, I am building a new application using a very similar
stack ... Play!/MongoDB/Elasticsearch ... I am working on the same problems.

Regarding data model: The items I am storing in my database and
indexing are easily modeled as documents, so I am doing that. I am making
no attempt to normalize them.

Regarding Mongo to ES: I have done some reading on the river, but
there are accounts of memory issues. I do not think it is stable yet. Shay
has mentioned an architecture in another thread in this group (search for
mongodb elasticsearch river), but he did say that it is not implemented and
that it is likely quite a bit of effort. I have a custom application that
processes the data in batches to insert into mongodb. For now I will be
modifying it to also hand the document to ES for indexing. My documents do
not change so this works for me.

Regarding search interface: I don't know of anything out there. I
have built a few search interfaces in the past and I plan to custom build
this one as well with heavy use of jQuery.

Type ahead: I plan to implement this as well, but only for facet
values, so I will have a finite list of values to filter on with my UI
controls. Others have asked how to do this for general search terms based
on the terms in the index, but I have not seen any great solutions yet. Try
searching the group.

Mark

On Sunday, March 4, 2012 9:51:49 AM UTC-8, Michal Karták wrote:

Hi,

first of all thanks Mr. Banon and all of you, who contributing to
ES. It simply rocks !

Since i am new to ES and also to NoSQL world i'd like to ask some
questions about ES and integration with other technologies.

Currently i work on a web application that consists of
0) Play! Framework, as an application framework [0] ,
1) MongoDB, as a persistent datastore [1]
2) PlayMorphia, as an Document-Object mapper [2]
3) Elasticsearch, as a search engine

My goals:

  • to implement search-centric application with strong use of
    faceted search, typeahead mechanism, cloud ready
  • i also like to show facets according to search context (
    reduce information overload of user interface )
  • my data set is relatively small, about 5 types of documents /
    up to 2000 of each type / up to 30 primitive fields per document

Challenges:
0) How to model data in MongoDB and then map then to ES ?
Q1: should i use much more Embedding instead of
Referencing => index one big (not flat) document ?
Q1: or rather use much more normalized model => index
entities separately (each is flat) ?

1) How to efficiently index Mongodb ?
   Possible solutions:
- manually, utilizing Morphia's lifecycle methods. ... costs

more code, but have more controll over the whole process
- using the MongoDB river plugin. ...black box solution, must
have well designed db model and mapping to work well :wink:

- Ok, there is also a Play/MongoDB/ES integration module, but

it not works well for me
Q2: Have i left out something ?

2) How to implement front-end faceted search user interface ?
(Im)possible solutions:
     - javascript search-oriented ui framework. It not exists,

yet :smiley: (?)
- Elasticsearch's UI framework. It not exists, yet :smiley:
- use SenseiDB's [4] web console. Integration may not be
possible. I'd like to use ES.

     - Ok, the last solution is to have knowledge of ajax/js

and write it for myself.
Q3: Have i left out something ?

3) How to implement typeahead functionality ?
     Q4: has somebody experienced Cleo [3] integration with ES ?
     Q5: is there ES API to do typeahead ?

Thanks for any helpful info.

Michal

[0] - http://www.playframework.org
[1] - http://www.mongodb.org
[2] - http://www.playframework.org/**m**odules/morphiahttp://www.playframework.org/modules/morphia
[3] - Mopid | Hire the best At 10x the speed
[4] - http://linkedin.github.com/**sen**sei/gettingStarted.htmlhttp://linkedin.github.com/sensei/gettingStarted.html

On Sunday, March 4, 2012 9:51:49 AM UTC-8, Michal Karták wrote:

Hi,

first of all thanks Mr. Banon and all of you, who contributing to
ES. It simply rocks !

Since i am new to ES and also to NoSQL world i'd like to ask some
questions about ES and integration with other technologies.

Currently i work on a web application that consists of
0) Play! Framework, as an application framework [0] ,
1) MongoDB, as a persistent datastore [1]
2) PlayMorphia, as an Document-Object mapper [2]
3) Elasticsearch, as a search engine

My goals:

  • to implement search-centric application with strong use of
    faceted search, typeahead mechanism, cloud ready
  • i also like to show facets according to search context (
    reduce information overload of user interface )
  • my data set is relatively small, about 5 types of documents /
    up to 2000 of each type / up to 30 primitive fields per document

Challenges:
0) How to model data in MongoDB and then map then to ES ?
Q1: should i use much more Embedding instead of
Referencing => index one big (not flat) document ?
Q1: or rather use much more normalized model => index
entities separately (each is flat) ?

1) How to efficiently index Mongodb ?
   Possible solutions:
- manually, utilizing Morphia's lifecycle methods. ... costs

more code, but have more controll over the whole process
- using the MongoDB river plugin. ...black box solution, must
have well designed db model and mapping to work well :wink:

- Ok, there is also a Play/MongoDB/ES integration module, but

it not works well for me
Q2: Have i left out something ?

2) How to implement front-end faceted search user interface ?
(Im)possible solutions:
     - javascript search-oriented ui framework. It not exists,

yet :smiley: (?)
- Elasticsearch's UI framework. It not exists, yet :smiley:
- use SenseiDB's [4] web console. Integration may not be
possible. I'd like to use ES.

     - Ok, the last solution is to have knowledge of ajax/js

and write it for myself.
Q3: Have i left out something ?

3) How to implement typeahead functionality ?
     Q4: has somebody experienced Cleo [3] integration with ES ?
     Q5: is there ES API to do typeahead ?

Thanks for any helpful info.

Michal

[0] - http://www.playframework.org
[1] - http://www.mongodb.org
[2] - http://www.playframework.org/**m**odules/morphiahttp://www.playframework.org/modules/morphia
[3] - Mopid | Hire the best At 10x the speed
[4] - http://linkedin.github.com/**sen**sei/gettingStarted.htmlhttp://linkedin.github.com/sensei/gettingStarted.html

--

--
Best regards

David Ford
0421 659 552
24.6.2013

--
You received this message because you are subscribed to a topic in the
Google Groups "elasticsearch" group.
To unsubscribe from this topic, visit
https://groups.google.com/d/topic/elasticsearch/4C5SWmu3hnI/unsubscribe?hl=en-US
.
To unsubscribe from this group and all its topics, send an email to
elasticsearch+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

--
Best regards

David Ford
0421 659 552
24.6.2013

--
You received this message because you are subscribed to a topic in the
Google Groups "elasticsearch" group.
To unsubscribe from this topic, visit
https://groups.google.com/d/topic/elasticsearch/4C5SWmu3hnI/unsubscribe?hl=en-US
.
To unsubscribe from this group and all its topics, send an email to
elasticsearch+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

--
You received this message because you are subscribed to the Google Groups "elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email to elasticsearch+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.