Keywords: Apache Solr, searchapi, Tomcat, Drupal 7, czech language, schema.xml, server.xml, views, more like this, autocomplete.
Klíčová slova: čeština, diakritika, vyhledávání, našeptávač.
Reference:
http://en.wikipedia.org/wiki/Solr
http://lucidworks.lucidimagination.com/display/solr/Apache+Solr+Referenc...
Anotace: Nastavení vyhledávání v češtině, tedy s diakritikou, za pomocí Apache Solr na Drupal 7.
Základní vybavení:
- Apache Tomcat, Apache Solr na strane serveru
 - Drupal 7
 - modul - Apache Solr Search - umožňuje použít vyhledávání solr v Drupal, more like this (http://drupal.org/project/apachesolr)
 
Vychytávky:
- modul - Search API - umožnuje vyhledávání, formátování výsledků ve views, facceting... (http://drupal.org/project/search_api)
 - modul - Views - prezentace dat v drupal
 - modul - Search API page - vytváří jednoduchou vyhledávací stránku (http://drupal.org/project/search_api_page)
 - modul - Search API autocomplete - našeptávač slov při zadávání dotazu (http://drupal.org/project/search_api_autocomplete)
 - modul - Search API live results - našeptávač, kompletuje při psaní textu (http://drupal.org/project/search_api_live_results)
 
Nastavení Apache Tomcat: 
(http://wiki.apache.org/solr/SolrTomcat#URI_Charset_Config)
V souboru "server.xml" je třeba přidat atribut URIEncoding="UTF-8" do elementu "Connector"
Pokud se toto nastavení neprovede indexování obsahu stránek bude správně fungovat, ale vyhledávání nebude fungovat s diakritikiou i přesto, že na straně serveru a při testování přes administraci solr bude vše v pořádku.
               connectionTimeout="*****"
               redirectPort="****" />
Jestli se vyskytuje "useBodyEncodingForUR" v elementu "Connector" , pak vyjmout.
Nastavení "schema.xml" searchapi
Pro správné indexování obsahu a vyhledávání v něm i s diakritikou je třeba upravit soubor "schema.xml" Soubor je umístěn v adresáři modulu search_api nebo apachesolr dle toho který je využíván. Tento se po úpravě spolu se souborem "solrconfig.xml" nakopíruje do konfiguračního adresáře serveru Apache Tomcat. Po úpravě souboru je třeba restartovat server a reindexovat obsah!
Pro vyhledávání veškerého fulltextového obsahu je v souboru "schema.xml" pole "fieldType name="text" class="solr.TextField..." . Toto je pole, které nás zajímá.
Obsah prochází při indexaci i vyhledávání postupně filtry definovanými v tomto poli. Popis některých filtrů:
- Whitespace Tokenizer Factory --- rozděluje na jednotlivá slova: "Být či nebýt" ---> "Být","či","nebýt"
 - Stop Filter Factory --- vyhazuje slova definovana v souboru "stopwords.txt", např. "a", "nebo"
 - HTML Strip Char Filter Factory --- odstraňuje html kód a vrátí čistý text
 - Word Delimiter Filter Factory --- odděluje/spojuje slova dělená oddělovači: "Big-Bang","BigBang" ---> "Big","Bang"
 - Lower Case Filter Factory--- změna na malá písmena: "Ahoj" ---> "ahoj"
 - Edge N-Gram Filter Factory --- dělí slova na znaky, umožní vyhledat část slova!
 - Remove Duplicates Token Filter Factory --- vyhodí duplikace
 
Příklad nastavení:
  
      
      
generateNumberParts="1"
catenateWords="1"
catenateNumbers="1"
catenateAll="0"
splitOnCaseChange="1"
preserveOriginal="1"/>
        
        
      
Článek je pahýl a upravuje se....