Any thoughts anyone ? I am primarily looking for an answer to my 2nd 
question.

On Tuesday, August 26, 2014 10:14:37 AM UTC-7, Srinivasan Ramaswamy wrote:
>
> I have documents with the above mentioned schema. 
>
>
> authorId : 10
> authorName: Joshua Bloch
> books: {
> {
> bookId: 101
> bookName:  Effective Java
> description : effective java book with useful recommendations
> Category: 1
> sales: {
> {
> keyword: effective java
> count: 200
> },
> {
> keyword: java tips
> count: 100
> },
> {
> keyword: java joshua bloch
> count: 50
> } 
> }
> createDate: 08-25-2014
> },
> {
> bookId: 102,
> bookName: Java Puzzlers
> description : Java Puzzlers: Traps, Pitfalls, and Corner Cases 
> Category: 2
> sales: {
> {
> keyword: java puzzlers
> count: 100
> },
> {
> keyword: joshua bloch puzzler
> count: 50
> }
> }
> }
> }
>
> The sales information is stored with each book along with the search query 
> that lead to that sales. If the user applied a category filter, I would 
> like to count only books that belong to that category.
>
> I would like to sort the list of authors returned based on a function of 
> sales data and text match. For eg if the search query  is "java" I would 
> like to return the above mentioned doc and all other author documents which 
> has the term "java" in them. I came up with the following query:
>
> {
>    "query": {
>       "function_score": {
>          "boost_mode": "replace",
>          "query": {
>             "match": { "bookName":"java"}
>          },
>          "script_score": {
>             "params": {
>                "param1": 2
>             },
>              "script": "doc['books.sales.count'].isEmpty() ? _score : 
> _score * doc['books.sales.count'].value * param1 "
>          }
>       }
>    }
> }
>
>
> I have few questions with the query i have above
> 1. The results dont look sorted by sales. I have authors who dont have any 
> books with sales in them at the top
> 2. How do i use the sum of all sales for an author (across all books 
> within the author document) in the script ? Is there a sum function for the 
> nested fields inside a document when using script_score ? Note that sales 
> is a nested field inside another nested field products.
> 3. As a next step I would also like to use a filter for keyword within the 
> script_score to only include sales whose keyword value matches with the 
> search query term
>
> Any help would be much appreciated. 
>
> Thanks
> Srini
>
>

-- 
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+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elasticsearch/c86f6564-927d-4b9b-b9c6-4d8cdb4e72c1%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to