solr学習の6------Analyzer(アナライザ)、Tokenizer(分詞器)
2087 ワード
まず、前の例でテキスト列を検索してみなかったかどうかはわかりませんが、第2節では、多くのドキュメントを追加しました.フィールド値がテキストの場合.このフィールドの単語だけを検索すると、検索できないことに気づきますか?
これは、Analyzerを構成していないため、検索時に「完全一致」します.SQLのlikeと=の違いは直感的に理解できる.
前の引用文を通じて、Analyzerは私たちのテキストを分析していることがわかります.
一般的にsolr.TextFieldタイプのフィールドには、アナライザが必要です.
最も簡単なプロファイルは次のとおりです.
アナライザ(Analyzer)は、より複雑なシーンを実現するために、複数のフィルタ(filter)と1つの分詞器(Tokenizer)を含むこともできます.
アナライザは一般的に2つの環境:インデックス作成(index)とクエリー(query)に現れ、多くの場合、この2つのシーンの分析プロセスは同じであり、つまり同じアナライザを使用しています.しかし、2つの異なるフェーズで異なる分析器を指すことができます.
typeと同じ段階を指す.
Tokenizer:
分詞器は、文字通り意味が理解できますが、文を一つ一つの語(あるいは語群)に分解することです.例えば、A B C Dは、A,B,C,Dの4つの単独の単語に分解することもできますし、AB,CDあるいはその他に分解することもできます..これはあなたの分詞のルール次第です.
次のように使用します.
注目すべきは、ここに配置されているclassはFactoryであり、本物の分詞器ではなく、ファクトリクラスを通じて分詞器インスタンスを作成していることです.すべての工場クラスはorgを実現しなければならない.apache.solr.analysis.TokenizerFactory
工場の産出物も、org.に派生しなければならない.apache.lucene.analysis.TokenStream
Filter:
Tokenizerの分詞を経て、すべて小文字に変換したり、時態処理したり、語気語を消したりするなど、継続的に処理します.の
これは、Analyzerを構成していないため、検索時に「完全一致」します.SQLのlikeと=の違いは直感的に理解できる.
前の引用文を通じて、Analyzerは私たちのテキストを分析していることがわかります.
一般的にsolr.TextFieldタイプのフィールドには、アナライザが必要です.
最も簡単なプロファイルは次のとおりです.
<fieldType name="nametext" class="solr.TextField">
<analyzer class="org.apache.lucene.analysis.WhitespaceAnalyzer"/>
</fieldType>
アナライザ(Analyzer)は、より複雑なシーンを実現するために、複数のフィルタ(filter)と1つの分詞器(Tokenizer)を含むこともできます.
アナライザは一般的に2つの環境:インデックス作成(index)とクエリー(query)に現れ、多くの場合、この2つのシーンの分析プロセスは同じであり、つまり同じアナライザを使用しています.しかし、2つの異なるフェーズで異なる分析器を指すことができます.
<fieldType name="nametext" class="solr.TextField">
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.KeepWordFilterFactory" words="keepwords.txt"/>
<filter class="solr.SynonymFilterFactory" synonyms="syns.txt"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
typeと同じ段階を指す.
Tokenizer:
分詞器は、文字通り意味が理解できますが、文を一つ一つの語(あるいは語群)に分解することです.例えば、A B C Dは、A,B,C,Dの4つの単独の単語に分解することもできますし、AB,CDあるいはその他に分解することもできます..これはあなたの分詞のルール次第です.
次のように使用します.
<fieldType name="text" class="solr.TextField">
<analyzer>
<tokenizer class="solr.StandardTokenizerFactory"/>
</analyzer>
</fieldType>
注目すべきは、ここに配置されているclassはFactoryであり、本物の分詞器ではなく、ファクトリクラスを通じて分詞器インスタンスを作成していることです.すべての工場クラスはorgを実現しなければならない.apache.solr.analysis.TokenizerFactory
工場の産出物も、org.に派生しなければならない.apache.lucene.analysis.TokenStream
Filter:
Tokenizerの分詞を経て、すべて小文字に変換したり、時態処理したり、語気語を消したりするなど、継続的に処理します.の