I am new to SOLR and am looking to order search results by tags. What is the best practice for storing tags in SOLR documents and what is the best practice for field type settings?
Here is my current method where the tags are stored in a comma delimited list. The search was for "script" but this setup doesn't seem to produce accurate results:
[0] => Solarium\QueryType\Select\Result\Document Object
(
[fields:protected] => Array
(
[id] => 4912
[description] => Neuarmy™ » YYY_NEUARMY_YES02
[tags] => type,texture,script
[save_date] => 1345825890
[score] => 1.4771256
)
)
[1] => Solarium\QueryType\Select\Result\Document Object
(
[fields:protected] => Array
(
[id] => 1223
[description] => Timbas Type & Logo Dept.
[tags] => typography,logo,branding,script
[save_date] => 1342703206
[score] => 1.4771256
)
)
[2] => Solarium\QueryType\Select\Result\Document Object
(
[fields:protected] => Array
(
[id] => 1323
[description] => ibg1pE.jpg 300×200 pixels
[tags] => logo,script,interview magazine
[save_date] => 1352914647
[score] => 1.4771256
)
)
You should choose a multiValued
field of string
type. The string field stores values without the pre-indexing mangulation and multiValued allows multiple values.
Then make php pass array( "typography", "logo", "branding", "script") for tags. Then Solr will recognise they are multiple values.
Also refer to the following link for better understanding. https://cwiki.apache.org/confluence/display/solr/Documents,+Fields,+and+Schema+Design