/ / Solr spracováva číselné ako reťazec - solr

Solr spracováva číselne ako reťazec - solr

Mám požiadavku na vykonanie dotazu "obsahuje"číselné pole. Existujú nejaké návrhy na dobrý spôsob, ako to urobiť. napr. fq = some_tint_field: * 7 * (mimo poľa to nefunguje a vráti sa dosť bizarné výsledky - napríklad číslo 55 sa vráti ako zodpovedajúce * 7 *)

Nepodarilo sa zmeniť typ poľa od odtieňa, pretože sa používa v otázkach rozsahu. Doterajšie moje predstavy sú

  • Majú reťazec field myField_str, ktorý zatiene numerické pole pomocou direktívy pre kopírovacie pole a používa ho na vyhľadávanie.

  • Vyskúšajte funkcie funkcie dopytu a nejakým spôsobom vytvorte vlastný mechanizmus dopytu, ktorý odovzdá int pred reťazcom pred spustením dotazu.

odpovede:

0 pre odpoveď č. 1

Navrhoval by som, aby bola definovaná ďalšia oblasť ... Toto ďalšie pole by malo mať iný typ poľa, kde bude generovať iný token, ktorý vám pomôže dosiahnuť vyhľadávanie.

Napríklad .. Môžete mať vlastný typ poľa, ktorý bude obsahovať ngram tokenizer.

Do schémy.xml môžete pridať nasledujúci typ poľa. Použite pole "partial_search" field for your field (s), kde chcete vykonať čiastočné vyhľadávanie.

Po dokončení zmien schémy.xml musíte vykonať reštartovanie servera a opätovné indexovanie údajov.

<fieldType name="partial_search" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.KeywordTokenizerFactory"/>
<tokenizer class="solr.NGramTokenizerFactory" minGramSize="2" maxGramSize="10"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.KeywordTokenizerFactory"/>
</analyzer>
</fieldType>