/ / Ako zapnúť dotaz, ktorý vyhľadáva údaje SOLR, do malých písmen? - vyhľadávanie, solr, malé písmená, analyzátor

Ako zmeniť dotaz, ktorý vyhľadáva údaje SOLR, na malé písmená? - vyhľadávanie, solr, malé písmená, analyzátor

Môj schéma.xlm vyzerá takto:

<fieldType name="text" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>

<!-- The searched field -->
<field name="product_name" type="text" indexed="true" stored="true"/>

Malo by to indexovať pole malými písmenami a transformovať vyhľadávací dopyt do malých písmen.

Údaje, ktoré chcem nájsť, sú: "Nokia Lumia 610"

Keď hľadám "nokia", získam očakávaný výsledok, ale nie pri vyhľadávaní len "Nokia" (veľké písmeno N) nie sú k dispozícii žiadne výsledky.

Hore "analyzátor" vykonáva malý počet iba na indexe, ale nie na vyhľadávacom dopyte.

Je to chyba? Ako vytlačiť indexy SOLR a vyhľadávací dopyt malými písmenami?

odpovede:

3 pre odpoveď č. 1

Transformácia vyhľadávacieho dotazu tiež závisío type dotazu a analyzátorovi, ktorý používate. Napríklad vyššie uvedené informácie nebudú konvertovať vyhľadávací dopyt na malé písmená, ak posielate žiadosť na vybratý analyzátor. Ak posielate žiadosť: -

http://url/solr/select?q=Nokia

potom vyššie uvedené nie sú konvertované na malé písmená, pretože vybraný analyzátor nie je vo vašej definícii poľa typu. Budete musieť upraviť svoj kód takto:

    <fieldType name="text" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="select">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>

ak vyššie uvedené nepomôže, pošlite prosím žiadosť, ktorú odosielate a výstup pridania debugQuery = true k žiadosti.


0 pre odpoveď č. 2

Spolu s

<fieldType name="text" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="select">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>

v schéme.xml.

Pri zmene head.vm návrat $ ("# q") val (); na návrat $ ("# q") val (). toLowerCase (); pre funkciu automatického dopĺňania funkcie InCaseSensitive. Aby ste dosiahli výsledok, ak hľadáte pomocou kapitálových písmen.