4

クエリを使用して検索するとaddr:s*

わかりました...(これはダミーデータです)

addr=someword
addr=banana-sunny.or
addr=seventy
addr=salvation

で始まるレコードのみが必要ですsが、結果の 2 番目のレコードは で始まりbます。

4

1 に答える 1

4

おそらく、住所フィールドにテキスト分析を使用して、単語を複数のトークンに分割しています。
その場合、「banana-sunny」という単語が複数のトークン (banana、sunny、または ) に分割される可能性があります。
したがって、s* を検索すると、結果が返されます。
分割したくない場合は、KeywordTokenizerFactory およびその他のフィルターを使用して新しいフィールド タイプを定義します。例えば

<fieldType name="text_string" class="solr.TextField" sortMissingLast="true" omitNorms="true">
  <analyzer>
    <tokenizer class="solr.KeywordTokenizerFactory"/>
    <filter class="solr.LowerCaseFilterFactory" />
  </analyzer>
</fieldType>
于 2013-01-31T04:25:52.503 に答える