Share » Forums » Extensions » eZ Find » exact match from related objects

exact match from related objects

exact match from related objects

Monday 20 June 2011 2:56:16 am - 21 replies

Author Message

Ivo Lukac

Monday 20 June 2011 3:19:23 am

Hi,

Did you try to put $category_name in the quotes?

http://www.linkedin.com/in/ivolukac
http://www.netgen.hr/eng/blog
http://twitter.com/ilukac

roberto perata

Monday 20 June 2011 3:24:41 am

Hi,

Did you try to put $category_name in the quotes?

Not in the fetch but in url:
http://localhost:8983/solr/select?q=attr_category_t:related&&fq=attr_category_t:"related"&fq=meta_path_si:69

Ivo Lukac

Monday 20 June 2011 3:49:36 am

When you filter some word, e.g. "foo bar", do you get all the results  or you get the result with category like "foo bar and beer"?

http://www.linkedin.com/in/ivolukac
http://www.netgen.hr/eng/blog
http://twitter.com/ilukac

roberto perata

Monday 20 June 2011 3:55:19 am

Exactly, that's the problem.

If I filter "foo bar" i get also "fool" and "foo beer" etc

Ivo Lukac

Monday 20 June 2011 4:01:56 am

The problem is that ezfind uses "text" type for objectrelation attributes. The text type gets tokenized as any other free text field. To have an exact match you need to use "string" type which is basically used as one token. For that you have 2 options:

1. to set object relation attribute to use "string" via ezfind.ini

2. to create custom string based field in solr schema.xml adn use <copyfield> to populate it with content from original field(s)

The first option is easier, but second is better ;)

http://www.linkedin.com/in/ivolukac
http://www.netgen.hr/eng/blog
http://twitter.com/ilukac

roberto perata

Monday 20 June 2011 4:58:18 am

Thanks for help me...do you mean someting like

<field name="attr_category_t" type="string" indexed="true" stored="true" multiValued="true"/>
in schema.xml ?

or in ezfind.ini
DatatypeMapFilter[ezstring]=simpletext

roberto perata

Monday 20 June 2011 5:01:12 am

we are using ezfind 2.1

Ivo Lukac

Monday 20 June 2011 5:10:25 am

Thanks for help me...do you mean someting like

<field name="attr_category_t" type="string" indexed="true" stored="true" multiValued="true"/>
in schema.xml ?

or in ezfind.ini
DatatypeMapFilter[ezstring]=simpletext

Yes, just to note that "attr_category_t" is probably a dynamic name already given by ezfind so you should name it e.g. "custom_category_s" or similar...

http://www.linkedin.com/in/ivolukac
http://www.netgen.hr/eng/blog
http://twitter.com/ilukac

roberto perata

Monday 20 June 2011 5:16:29 am

attr_category_t is the name of the field I'm filtering as it results from http://localhost:8983/solr/select?q=*:*&start=&rows=50&&fq=subattr_category-ame_tag_t:"related"&fq=meta_path_si:69

Ivo Lukac

Monday 20 June 2011 5:30:33 am

attr_category_t is the name of the field I'm filtering as it results from http://localhost:8983/solr/select?q=*:*&start=&rows=50&&fq=subattr_category-ame_tag_t:"related"&fq=meta_path_si:69

Ok. My comment was aimed for the second solution, if you make an additional field...

But, anyway did you manage to solve the problem?

http://www.linkedin.com/in/ivolukac
http://www.netgen.hr/eng/blog
http://twitter.com/ilukac

roberto perata

Monday 20 June 2011 5:42:03 am

Not yet, and the problem is also for a single word:

Search for "foo" get also "fool"

i've add  <field name="attr_category_t"         type="string" indexed="true" stored="true" multiValued="true"/> to field list of schema.xml

Ivo Lukac

Monday 20 June 2011 5:51:02 am

Not yet, and the problem is also for a single word:

Search for "foo" get also "fool"

That is weird... hm. Is that word ("fool") somehow concatenated or?

http://www.linkedin.com/in/ivolukac
http://www.netgen.hr/eng/blog
http://twitter.com/ilukac

roberto perata

Monday 20 June 2011 5:54:26 am

Nope just a single word

roberto perata

Monday 20 June 2011 6:06:56 am

Yeahhh,
it works, I had to change an article to re-indexing

Thanks a lot

Ivo Lukac

Monday 20 June 2011 6:14:15 am

Yeahhh,
it works, I had to change an article to re-indexing

Thanks a lot

ROTFL 

Nice to hear :)

http://www.linkedin.com/in/ivolukac
http://www.netgen.hr/eng/blog
http://twitter.com/ilukac

roberto perata

Monday 20 June 2011 8:35:33 am

Ooops one more question...

I'm albe to seach by url but I've to translate to ezfind fetch:
http://localhost:8983/solr/select?q=*:*&start=&rows=50&&fq=category_tag:"elated"

category_tag is the custom name of my fild.

So far I used filter based on <class_identifier>/<class_attribute>[/<sub_structure]:<value> but now it's related to my custom_attribute_declaration.

fetch( ezfind, search, hash(

limit, 6,
subtree_array, array($canale_node_id),
ignore_visibility, false(),
filter, array('or',
      array('and', concat('ame_content/category:"',$category_name,'"'),'published:[NOW-180DAY TO NOW]'),
       array('and', concat('ame_video/category:"'  ,$category_name,'"'),'published:[NOW-180DAY TO NOW]') 

                                        ),

 class_id, array( 'ame_video','ame_content'),
 sort_by, hash(published, desc)))

and now? how can I relate to new attribute? Do I have to switch to rawSolrRequest?

rawSolrRequest

                            

Ivo Lukac

Monday 20 June 2011 9:00:07 am

you can use the new attribute with 'attr_category_t' instead 'ame_content/category', you don't need to have 'or' either...

http://www.linkedin.com/in/ivolukac
http://www.netgen.hr/eng/blog
http://twitter.com/ilukac

roberto perata

Monday 20 June 2011 11:40:45 pm

Well, thanks Ivo I solved my problem. I recap for those who could have the same question:

The problem was that the text coming from a related object was tokenizen. That's because the default settings was "text" datatype instead of "string".

I change schema.xml creating a new field call "foo" and copying into it the original field:

 <field name="foo" type="string" indexed="true" stored="true" multiValued="true" />

<copyField source="bar" dest="foo" />

then the fetch

......,
filter, concat('foo:', $text_to_search),
......

Thanks Ivo
Roberto

roberto perata

Thursday 23 June 2011 7:53:29 am

Ops it doesn't work...

it takes also results from other fields (attr_body_t).
Is there a way to restrict the results anly to my custom field, actually my fetch is:

etch( ezfind, search, hash(
                                                 subtree_array, array($canale_node_id),
                                                 ignore_visibility, false(),
                                                 filter,array(
                                                         concat($search_field,$category_name),
                                                         concat('-meta_id_si:',$actual_objectid)
                                                         ),
                                                 class_id, array( 'ame_video','ame_content'),
                                                 limit, 5,
                                                 sort_by, hash(published, desc)))

Thanks.

Roberto

Ivo Lukac

Saturday 25 June 2011 3:15:57 am

Ops it doesn't work...

it takes also results from other fields (attr_body_t).
Is there a way to restrict the results anly to my custom field, actually my fetch is:

etch( ezfind, search, hash(
                                                 subtree_array, array($canale_node_id),
                                                 ignore_visibility, false(),
                                                 filter,array(
                                                         concat($search_field,$category_name),
                                                         concat('-meta_id_si:',$actual_objectid)
                                                         ),
                                                 class_id, array( 'ame_video','ame_content'),
                                                 limit, 5,
                                                 sort_by, hash(published, desc)))

Thanks.

Roberto

Hi,

Can you paste ezfind/solr request message (enable debug) so we can see what is going on?

http://www.linkedin.com/in/ivolukac
http://www.netgen.hr/eng/blog
http://twitter.com/ilukac

You must be logged in to post messages in this topic!

36 542 Users on board!

Forums menu