1

私は検索/インデックス作成が初めてで、Symfony の FosElasticaBundle を使用して Web アプリに検索機能を提供することに取り組んでいます。デフォルト設定では全単語検索しか許可されていないことがわかるまで、問題なくセットアップして実行しました。

次に、部分的な単語の一致を有効にするために数時間試しましたが、うまくいきませんでした。nGram や edgenGram などを試しましたが、すべての概念に本当に混乱していました。概念と構成に関するチュートリアルを検索してみましたが、実際には答えが得られませんでした。

これが私の設定です:

fos_elastica:
  clients:
      default: { host: localhost, port: 9200 }
  serializer:
      callback_class: FOS\ElasticaBundle\Serializer\Callback
      serializer: serializer
  indexes:
      website:
          client: default
          finder: ~
          settings:
              index:
                  analysis:
                      analyzer:
                          index_analyzer:
                              tokenizer: "nGram"
                              filter:  ["lowercase", "snowball"]
                          search_analyzer:
                              tokenizer: "nGram"
                              filter:  ["lowercase", "snowball"]

                      filter:
                          snowball:
                              type: "snowball"
                              language: "English"
          types:
              client:

                  mappings:
                      BusinessName: { boost: 10 }
                      users:
                          type: "object"
                          properties:
                              firstName: { boost: 5 }
                              lastName: { boost: 5 }
                              email: { boost: 10 }
                  persistence:
                      driver: orm # orm, mongodb, propel are available
                      model: E1\Bundle\CoreBundle\Entity\Client
                      listener:
                      provider: ~
                      finder: ~

ドキュメントは役に立ちません。部分的な単語一致セットを取得する方法や、概念 (トークナイザー、フィルター、アナライザー) に関するチュートリアルをどこで見つけることができるかを誰かに教えてもらえますか?

4

1 に答える 1