Hi Erick,

Finally Made it work.

bf=if(exists(query($qqone)),one_score,0)&qqone=one_query:\"google cloud\"

Thanks a lot for guiding, also reminding its not url escape.

No analyzers used.


Regards,
Govind



On Tue, Jun 27, 2017 at 11:01 AM, govind nitk <govind.n...@gmail.com> wrote:

> Hi Erick,
> I accept, I should have mentioned the what I was doing first.
>
> field types:
> one_query is "string",
> one_score is float.
>
> So No explicit analyzers.
>
> mentioned sow=false. and escaping as you mentioned. But still the error
> persist. - undefined field "cloud"
>
> Will get back.
>
> Regards,
> Givind
>
> On Tue, Jun 27, 2017 at 8:44 AM, Erick Erickson <erickerick...@gmail.com>
> wrote:
>
>> bq: So, ultimate goal is when the exact query matches in field
>> one_query, apply boost of one_score
>>
>> It would have been helpful to have made that statement in the first
>> place, would have saved some false paths.
>>
>> What is your analysis chain here? If it's anything like "text_general"
>> or the like then you're going to have some trouble. I'd think about an
>> analysis chain like KeywordTokenizerFactory and
>> LowercaseFilterFactory. That'll index the entire field as a single
>> token. The admin/analysis page is your friend.
>>
>> To search against it, you need to _escape_ the space (not "url
>> escape"). As in google\ cloud so that makes it through the query
>> parser as a single token.
>>
>> As of Solr 6.5 you can also specify sow=false (Split On Whitespace),
>> which may be a better option, see:
>> https://issues.apache.org/jira/browse/SOLR-9185
>>
>> Best,
>> Erick
>>
>> On Mon, Jun 26, 2017 at 7:32 PM, govind nitk <govind.n...@gmail.com>
>> wrote:
>> > Hi Developers, Erick
>> >
>> > I am able to add boost through function as below:
>> > bf=if(termfreq(one_query,"google"),one_score,0)
>> >
>> > Problem is when I say "google cloud" as query, it gives error:
>> > undefined field: \"cloud\""
>> >
>> > I tried encoding the query(%20, + for space), but not able to get it
>> > working.
>> >
>> > So, ultimate goal is when the exact query matches in field one_query,
>> apply
>> > boost of one_score.
>> >
>> > Is there any way to do this? Or a PR is needed.
>> >
>> >
>> > Regards,
>> > Govind
>> >
>> >
>> > On Mon, Jun 26, 2017 at 11:14 AM, govind nitk <govind.n...@gmail.com>
>> wrote:
>> >
>> >>
>> >> Hi Erick,
>> >>
>> >> Exactly this is what I was looking for.
>> >> Thanks a lot.
>> >>
>> >>
>> >> Regards,
>> >> Govind
>> >>
>> >> On Mon, Jun 26, 2017 at 12:03 AM, Erick Erickson <
>> erickerick...@gmail.com>
>> >> wrote:
>> >>
>> >>> Take a look at function queries. You're probably looking for "field",
>> >>> "termfreq" and "if" functions or some other combination like that.
>> >>>
>> >>> On Sun, Jun 25, 2017 at 9:01 AM, govind nitk <govind.n...@gmail.com>
>> >>> wrote:
>> >>> > Hi Erik, Thanks for the reply.
>> >>> >
>> >>> > My intention of using the domain_ct in the qf was, giving the weight
>> >>> > present in the that document.
>> >>> >
>> >>> > e.g
>> >>> > qf=category^domain_ct
>> >>> >
>> >>> > if the current query matched in the category, the boost given will
>> be
>> >>> > domain_ct, which is present in the current matched document.
>> >>> >
>> >>> >
>> >>> > So if I have category_1ct, category_2ct, category_3ct, category_4ct
>> as 4
>> >>> > indexed categories(text_general fields) and the same document has
>> >>> > domain_1ct, domain_2ct, domain_3ct, domain_4ct as 4 different count
>> >>> > fields(int), is there any way to achieve:
>> >>> >
>> >>> > qf=category_1ct^domain_1ct&qf=category_2ct^domain_2ct&qf=cat
>> >>> egory_3ct^domain_3ct&qf=category_4ct^domain_4ct
>> >>> >   ?
>> >>> >
>> >>> >
>> >>> >
>> >>> >
>> >>> > Regards
>> >>> >
>> >>> >
>> >>> >
>> >>> >
>> >>> > On Sat, Jun 24, 2017 at 3:42 PM, Erik Hatcher <
>> erik.hatc...@gmail.com>
>> >>> > wrote:
>> >>> >
>> >>> >> With dismax use bf=domain_ct. you can also use boost=domain_ct with
>> >>> >> edismax.
>> >>> >>
>> >>> >> > On Jun 23, 2017, at 23:01, govind nitk <govind.n...@gmail.com>
>> >>> wrote:
>> >>> >> >
>> >>> >> > Hi Solr,
>> >>> >> >
>> >>> >> > My Index Data:
>> >>> >> >
>> >>> >> > id name category domain domain_ct
>> >>> >> > 1 Banana Fruits Home > Fruits > Banana 2
>> >>> >> > 2 Orange Fruits Home > Fruits > Orange 4
>> >>> >> > 3 Samsung Mobile Electronics > Mobile > Samsung 3
>> >>> >> >
>> >>> >> >
>> >>> >> > I am able to retrieve the documents with dismax parser with the
>> >>> weights
>> >>> >> > mentioned as below.
>> >>> >> >
>> >>> >> > http://localhost:8983/solr/my_index/select?defType=dismax&;
>> >>> >> indent=on&q=fruits&qf=category
>> >>> >> > ^0.9&qf=name^0.7&wt=json
>> >>> >> >
>> >>> >> >
>> >>> >> > Is it possible to retrieve the documents with weight taken from
>> the
>> >>> >> indexed
>> >>> >> > field like:
>> >>> >> >
>> >>> >> > http://localhost:8983/solr/my_index/select?defType=dismax&;
>> >>> >> indent=on&q=fruits&qf=category
>> >>> >> > ^domain_ct&qf=name^domain_ct&wt=json
>> >>> >> >
>> >>> >> > Is this possible to give weight from an indexed field ? Am I
>> doing
>> >>> >> > something wrong?
>> >>> >> > Is there any other way of doing this?
>> >>> >> >
>> >>> >> >
>> >>> >> > Regards
>> >>> >>
>> >>>
>> >>
>> >>
>>
>
>

Reply via email to