Boosting a list of field for queries

Hi Folks
We have a bunch of fields for a document.
Lets call them "field1",'field2"....., "FIELD1","FIELD2"......

When we search for a particular text we want to see those records first
which has that text in "FIELD1"..."FIELDn" before records from "field1",
"field2" etc.

Now the complications :
a) We have lots of field. Doing internal testing we found that if we copy
the fields to a common field(using "copy_to" something akin to _all field)
and do search only that field then the search is much faster then doing a
multi match query on list of fields. Not found any document on this, but
this seem to be the case in all our internal testing.
b) We have our own analyzer for different copy to field. So lets say I have
"my_own_analyzed_all_field1" on which I am searching. All values from
"field1"..... "FIELDn" is copied here.
c) The "boost" parameter for field as far I see work for field type( As far
as I see its only deprecated for document ). However this only works if the
result is going to "_all' field. It does not seem to be boosting the field
getting copied to "my_own_analyzed_all_field1".

So the question is can it be done here? Or do we have to do multi match
query with each field boosted by certain factor.

--
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.
To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/826be7eb-766a-400c-9198-c47771a385c7%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Hi Folks
I have created test data like this in Sense.
PUT /myccindexallanalyzed/testobject/_bulk
{"index":{"_id":1}}
{"name":"do not","description":"single test word"}
{"index":{"_id":2}}
{"name":"single test word","description":"do not"}

I am trying to search for "sin* test" and want the document which has this
phrase in Name field to be first.
I do get the document but the one in the description field has higher
score. What am I doing wrong here?
Here is the query :

GET myccindexallanalyzed/testobject/_search?explain
{
"query": {
"bool": {
"should" : [
{
"span_near":
{"clauses":
[

{"span_multi":{"match":{"wildcard":{"description":{"wildcard":"sin*","boost":1.0}}}}}
,{"span_multi":{"match":{"wildcard":{"description":{"wildcard":"test","boost":1.0}}}}}
]
,"slop":0 ,"in_order":true,"collect_payloads":false
}
},
{
"span_near":
{"clauses":
[

{"span_multi":{"match":{"wildcard":{"name":{"wildcard":"sin*","boost":2.0}}}}}
,{"span_multi":{"match":{"wildcard":{"name":{"wildcard":"test","boost":2.0}}}}}
]
,"slop":0 ,"in_order":true,"collect_payloads":false
}
}
]
,"minimum_should_match" : 1
}
}
}

On Tuesday, September 9, 2014 10:50:21 AM UTC-7, Amish Asthana wrote:

Hi Folks
We have a bunch of fields for a document.
Lets call them "field1",'field2"....., "FIELD1","FIELD2"......

When we search for a particular text we want to see those records first
which has that text in "FIELD1"..."FIELDn" before records from "field1",
"field2" etc.

Now the complications :
a) We have lots of field. Doing internal testing we found that if we copy
the fields to a common field(using "copy_to" something akin to _all field)
and do search only that field then the search is much faster then doing a
multi match query on list of fields. Not found any document on this, but
this seem to be the case in all our internal testing.
b) We have our own analyzer for different copy to field. So lets say I
have "my_own_analyzed_all_field1" on which I am searching. All values from
"field1"..... "FIELDn" is copied here.
c) The "boost" parameter for field as far I see work for field type( As
far as I see its only deprecated for document ). However this only works if
the result is going to "_all' field. It does not seem to be boosting the
field getting copied to "my_own_analyzed_all_field1".

So the question is can it be done here? Or do we have to do multi match
query with each field boosted by certain factor.

--
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.
To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/8eac1aa8-8b06-44c3-b4d0-20965160e771%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Not seen any reply.
Can anyone guide us.
Let me ask in another way :
a) Lets say i have document with 10 fields.
Assume that there is no boosting etc. required for any field. Now lets say
we have "_all" fields encompassing all these fields.
Question : Is the query on just "_all" field faster then field by field
query?
If so by what factor? ( To me logically it should tokens in "_all" field
should be less than equal to summation of all fields and thus time should
be less than field by field, approaching _all case if all are distinct
token.)

b) Then the second part of question is how to boost a field; if its getting
copied to a copy to field.
regards and thanks
amish

On Tuesday, September 9, 2014 10:50:21 AM UTC-7, Amish Asthana wrote:

Hi Folks
We have a bunch of fields for a document.
Lets call them "field1",'field2"....., "FIELD1","FIELD2"......

When we search for a particular text we want to see those records first
which has that text in "FIELD1"..."FIELDn" before records from "field1",
"field2" etc.

Now the complications :
a) We have lots of field. Doing internal testing we found that if we copy
the fields to a common field(using "copy_to" something akin to _all field)
and do search only that field then the search is much faster then doing a
multi match query on list of fields. Not found any document on this, but
this seem to be the case in all our internal testing.
b) We have our own analyzer for different copy to field. So lets say I
have "my_own_analyzed_all_field1" on which I am searching. All values from
"field1"..... "FIELDn" is copied here.
c) The "boost" parameter for field as far I see work for field type( As
far as I see its only deprecated for document ). However this only works if
the result is going to "_all' field. It does not seem to be boosting the
field getting copied to "my_own_analyzed_all_field1".

So the question is can it be done here? Or do we have to do multi match
query with each field boosted by certain factor.

--
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.
To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/cf0b5392-e463-4f79-8218-ebff8167f7b6%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.