Support #2110

[利用者向け FAQ] Mroongaの全文検索用パーサの挙動 について教えて下さい

Added by Kenji Maruyama about 4 years ago. Updated about 4 years ago.

Status:担当者作業中Start date:12/03/2013
Priority:NormalDue date:
Assignee:Kenji Maruyama% Done:

0%

Category:-
Target version:-

History

#1 Updated by Kouhei Sutou about 4 years ago

  • Status changed from 完了チェック待ち to 担当者作業中

トークナイザーの一覧はGroongaの方に持っていってそっちを参照するようにした方がよいと思います!

場所は http://groonga.org/ja/docs/reference/tokenizers.html が適切だと思います。

Sphinxでテーブルを表現するときは list-tableディレクティブ が便利です。

https://github.com/groonga/groonga/blob/master/doc/source/reference/commands/tokenize.txt#L184

http://groonga.org/ja/docs/reference/commands/tokenize.html#return-value

となります。

ただ、実例もあった方がわかりやすいと思うので、表ではなく、1トークナイザー毎に1セクションが適切じゃないかという気がします。例えばこんな感じです。

``TokenBigram``
---------------

It tokenizes a string by Bigram.

If the string is not normalized, all tokens contain one or two characters.

.. groonga-command
.. include:: ../example/reference/tokenizers/token_bigram_without_normalization.log
.. tokenize TokenBigram 'Hello World!!! 123'

If the string is normalized, consecutive alphabets, consecutive numbers and consecutive symbols are tokenized as a token.

.. groonga-command
.. include:: ../example/reference/tokenizers/token_bigram_without_normalization.log
.. tokenize TokenBigram 'Hello World!!! 123' NormalizerAuto

Tokenizing consecutive alphabets as a token reduces search noice. It is the reason why TokenBigram tokenizes consecutive alphabets as a token.

Normally, users don't want to hit ``"World"`` by keyword ``"or"``. But users want to hit ``"World"`` by keyword ``"or"`` sometimes. To support the case, consider to use other tokenizer such as ``TokenBigramSplitSymbolAlphaDigit``.

あぁ、 http://mroonga.org/ja/docs/userguide/wrapper.html#how-to-specify-the-parser-for-full-text-search にもトークナイザーの一覧があるんですね。しかも、どういうときにマッチしてどういうときにマッチしないかという例もついていて、よりわかりやすくなっていますね!

Groongaのtokenizersのドキュメントの方を充実させて、ここもそっちへの参照だけにできるとよさそうです!

解説はよいと思います!ただ、ドキュメントに入れるときはサンプルを英語にしてください。

欲を言うと、ノーマライザー(MroongaとかMySQLでいうcollation)の有無によって挙動が変わるよみたいなのも入れたほうがいいかなぁと思いますが、それは別エントリーにしてもよさそうな気はします。(挙動が変わる云々は↑のTokenBigramのサンプルでも触れているやつのことです。)

#2 Updated by Kenji Maruyama about 4 years ago

レビューありがとうございます。

ただ、実例もあった方がわかりやすいと思うので、表ではなく、1トークナイザー毎に1セクションが適切じゃないかという気がします。

なるほど。確かにそちらの方がわかりやすいです。

書いている当初は種類が多いので、ぱっとみて概要だけがわかり、さらにちょっと解説する形式としては表 + 解説 ということ にしてみました(種類多い、文章量多いと読む前難しそうだというイメージを払拭したかった)が、公式サイトに載せるドキュメントとして 1トークナイザー毎に1セクション の方が詳しくて良いのでそういたします。

また、これはこれで、メーリングリストで出た質問と答えをまとめたものとして、FAQという章を公式サイトに設けて、よくある質問と答えをぱっとみて概要をつかめる、さらに深堀りして頂くためはGroonga, Mroongaの詳しい説明ページへのリンクをつける形 にしたいですね。

ドキュメントに入れるときはサンプルを英語にしてください。

了解です。

欲を言うと、ノーマライザー(MroongaとかMySQLでいうcollation)の有無によって挙動が変わるよみたいなのも入れたほうがいいかなぁと思いますが、それは別エントリーにしてもよさそうな気はします。(挙動が変わる云々は↑のTokenBigramのサンプルでも触れているやつのことです。)

了解です。別エントリーとして後ほど追加します。

#3 Updated by Susumu Yata about 4 years ago

これから修正するところのようなので,内容とは関係ないところにコメントします.

タイトルの "Mroongaの" は, Mroonga の FAQ としては蛇足になるので,取り除いた方がスッキリすると思います.

それから,同じくタイトルの "教えて下さい" について, FAQ 内部では "下さい" より "ください" が多く使われているようなので,どうせならすべて "ください" に統一した方がいいと思います.

#4 Updated by Kenji Maruyama about 4 years ago

#3

レビューありがとうございます。直しました。

Also available in: Atom PDF