correct tag cloud
authorymh <ymh.work@gmail.com>
Mon, 03 May 2010 01:48:36 +0200
changeset 113 df7bf46a4323
parent 112 e367a313ba1b
child 114 a8e80a8a239d
correct tag cloud
engine/solr/solr/conf/schema.xml
web/thdProject/apps/frontend/modules/tag/actions/viewTagListAction.class.php
web/thdProject/apps/frontend/modules/tag/templates/viewTagListSuccess.php
web/thdProject/lib/core/ThdUtil.php
--- a/engine/solr/solr/conf/schema.xml	Sat May 01 03:20:13 2010 +0200
+++ b/engine/solr/solr/conf/schema.xml	Mon May 03 01:48:36 2010 +0200
@@ -40,6 +40,7 @@
       <analyzer>
         <tokenizer class="solr.WhitespaceTokenizerFactory"/>
         <filter class="solr.LowerCaseFilterFactory"/>
+        <filter class="solr.ASCIIFoldingFilterFactory" />
       </analyzer>
     </fieldType>
     <fieldType name="textdata" class="solr.TextField" sortMissingLast="true" omitNorms="true" >
@@ -47,17 +48,21 @@
         <tokenizer class="solr.WhitespaceTokenizerFactory"/>
         <filter class="solr.LowerCaseFilterFactory"/>
         <filter class="solr.TrimFilterFactory" />
+        <filter class="solr.ASCIIFoldingFilterFactory" />
         <filter class="solr.SnowballPorterFilterFactory" language="French" />
       </analyzer>
     </fieldType>
     <fieldType name="tags" class="solr.TextField" sortMissingLast="true" omitNorms="true" >
       <analyzer>
-        <tokenizer class="solr.StandardTokenizerFactory" pattern=",*" />
+        <tokenizer class="solr.StandardTokenizerFactory" />
         <filter class="solr.LowerCaseFilterFactory"/>
         <filter class="solr.TrimFilterFactory" />
         <filter class="solr.SnowballPorterFilterFactory" language="French" />
+        <filter class="solr.ASCIIFoldingFilterFactory" />
       </analyzer>
     </fieldType>
+    <fieldType name="tags_exact" class="solr.StrField" sortMissingLast="true" omitNorms="true" >
+    </fieldType>    
     <fieldType name="personsList" class="solr.TextField" sortMissingLast="true" omitNorms="true" >
       <analyzer>
         <tokenizer class="solr.PatternTokenizerFactory" pattern="; *" />
@@ -95,9 +100,10 @@
    <field name="original_title" type="title"  indexed="true" stored="false" required="false" />
    <field name="desc" type="textdata"  indexed="true" stored="false" required="false" />
    <field name="tags" type="tags"  indexed="true" stored="true" required="false" multiValued="true" />
+   <field name="tags_exact" type="tags_exact"  indexed="true" stored="true" required="false" multiValued="true" />
    <field name="directors" type="personsList"  indexed="true" stored="false" required="false" />
    <field name="actors" type="personsList"  indexed="true" stored="false" required="false" />
-   <field name="all" type="textdata" indexed="true" stored="true" required="false" multiValued="true" />    
+   <field name="all" type="textdata" indexed="true" stored="false" required="false" multiValued="true" />    
    
  </fields>
 
@@ -118,4 +124,7 @@
  <copyField source="directors" dest="all"/>
  <copyField source="actors" dest="all"/>
 
+ <copyField source="tags" dest="tags_exact"/> 
+ 
+
 </schema>
--- a/web/thdProject/apps/frontend/modules/tag/actions/viewTagListAction.class.php	Sat May 01 03:20:13 2010 +0200
+++ b/web/thdProject/apps/frontend/modules/tag/actions/viewTagListAction.class.php	Mon May 03 01:48:36 2010 +0200
@@ -14,7 +14,7 @@
 
     
     $solr = uvmcSolrServicesManager::getInstance()->getService();
-    $response = $solr->search("tags:".$this->tag, $this->pageIndex * $this->pageNbItems, $this->pageNbItems);
+    $response = $solr->search("tags_exact:".$this->tag, $this->pageIndex * $this->pageNbItems, $this->pageNbItems);
 
     $results = unserialize($response->getRawResponse());              
 
--- a/web/thdProject/apps/frontend/modules/tag/templates/viewTagListSuccess.php	Sat May 01 03:20:13 2010 +0200
+++ b/web/thdProject/apps/frontend/modules/tag/templates/viewTagListSuccess.php	Mon May 03 01:48:36 2010 +0200
@@ -1,6 +1,12 @@
 <?php slot('sideBar'); ?>
-<?php include_component( 'tag', 'tagNavigator', array("film"=>$film)); ?>
+<?php 
+if(isset($film)) {
+    include_component( 'tag', 'tagNavigator', array("film"=>$film));
+}?>
 <?php end_slot(); ?>
 <h3 class="head">Résultats pour : <i><?php echo $tag; ?></i></h3> 
-<?php include_component( 'tag', 'player', array("film"=>$film)); ?>	
+<?php 
+if(isset($film)) {
+	include_component( 'tag', 'player', array("film"=>$film)); 
+}?>	
 <?php include_partial('tag/suggestionFilmList', array('filter' => 'all', 'filmCount' => '10', 'mostTaggedFilms' => $mostTaggedFilms, 'pageIndex' => $pageIndex, 'pageNbItems' => $pageNbItems, 'tag' => $tag)); ?>	
--- a/web/thdProject/lib/core/ThdUtil.php	Sat May 01 03:20:13 2010 +0200
+++ b/web/thdProject/lib/core/ThdUtil.php	Mon May 03 01:48:36 2010 +0200
@@ -81,13 +81,13 @@
 
       
       //facet=true&facet.limit=-1&facet.field=tags
-      $parameters = Array('facet'=>'true', 'facet.limit'=>"$limit", 'facet.field'=>'tags' );
+      $parameters = Array('facet'=>'true', 'facet.limit'=>"$limit", 'facet.field'=>'tags_exact' );
       
       $solr = uvmcSolrServicesManager::getInstance()->getService();
       $response = $solr->search("*:*", 0, 0, $parameters);
       $result = unserialize($response->getRawResponse());
       
-      foreach ($result["facet_counts"]["facet_fields"]["tags"] as $tag_name => $count) {
+      foreach ($result["facet_counts"]["facet_fields"]["tags_exact"] as $tag_name => $count) {
         $tags[] = Array('tag' => $tag_name, 'count' => (int) $count);
       }