1

特殊文字を含むいくつかの単語をまとめて索引付けしたいと思います。

たとえば、 が与えられた場合、 andm&mで区切るのではなく、全体としてインデックスを作成したいと思います(通常は区切り文字と見なされます)。mm&

標準のトークナイザー/フィルターを使用してこれを達成する方法はありますか、それとも自分で作成する必要がありますか?

4

3 に答える 3

3

基本的に、テキスト フィールド タイプは、インデックスを作成する前に特殊文字を除外します。文字列型を使用できますが、検索にはお勧めできません。WordDelimiterFilterFactoryのtypes オプションを使用 でき、それらの特殊文字をアルファベット順に変換できます

% => パーセント & => そして

于 2013-03-09T17:10:55.397 に答える
3

標準トークナイザー ファクトリは、指定されたテキストを特殊文字で分割/トークン化します。特殊文字でインデックスを作成するには、独自のカスタム トークナイザーを作成するか、次のようにします。

  • テキストをトークン化/分割する文字のリストを取得します。たとえば、私のリストは{" ",";"}です。
  • StandardTokenizer の代わりに、上記の文字リストでPatternTokenizerを使用します。構成は次のようになります。

      <analyzer>
        <tokenizer class="solr.PatternTokenizerFactory" pattern=" |;" />
      </analyzer>
    
于 2013-03-10T03:47:23.453 に答える
1

WhiteSpaceTokenizerFactory を使用できます。

http://docs.lucidworks.com/display/solr/Tokenizers#Tokenizers-WhiteSpaceTokenizer

空白でのみトークン化します。例えば、

「m&m」は単一のトークンと見なされるため、そのように索引付けされます

于 2013-03-11T03:12:03.137 に答える