Elastica FOSElastica Symfony2分析仪不工作

Elastica FOSElastica Symfony2分析仪不工作,symfony,analyzer,elastica,foselasticabundle,Symfony,Analyzer,Elastica,Foselasticabundle,我正在研究Elastica/FOSElastica的工作原理。我让它运行得很好,就像非常简单的搜索查询,其中产品名称与我的搜索字符串完全匹配 因为这不是一个好的搜索方法,所以我必须添加分析器来执行更好的搜索结果。但是他们没有工作 我试图复制并粘贴这个示例代码(插入我的索引/当然类型)=> 所以,我的问题是:如何让我的分析器工作?我想,我必须在我的控制器中应用它们,但我不完全确定我将如何做到这一点 这是我的配置 #app/config/config.yml fos_elastica: cli

我正在研究Elastica/FOSElastica的工作原理。我让它运行得很好,就像非常简单的搜索查询,其中产品名称与我的搜索字符串完全匹配

因为这不是一个好的搜索方法,所以我必须添加分析器来执行更好的搜索结果。但是他们没有工作

我试图复制并粘贴这个示例代码(插入我的索引/当然类型)=>

所以,我的问题是:如何让我的分析器工作?我想,我必须在我的控制器中应用它们,但我不完全确定我将如何做到这一点

这是我的配置

#app/config/config.yml

fos_elastica:
  clients:
    default: { host: localhost, port: 9200 }
  indexes:
    search:
      client: default
      settings:
        index:
          analysis:
            analyzer:
              custom_analyzer :
                type     :    custom
                tokenizer:    nGram
                filter   :    [stopwords, asciifolding ,lowercase, snowball, elision, worddelimiter]
              custom_search_analyzer :
                type     :    custom
                tokenizer:    standard
                filter   :    [stopwords, asciifolding ,lowercase, snowball, elision, worddelimiter]
              my_analyzer   _:
                  type: snowball
                  language: German
            tokenizer:
              nGram:
                type:     nGram
                min_gram: 2
                max_gram: 20
            filter:
              snowball:
                type:     snowball
                language: German
              elision:
                type:     elision
                articles: [l, m, t, qu, n, s, j, d]
              stopwords:
                type:      stop
                stopwords: [_german_]
                ignore_case : true
              worddelimiter :
                type:      word_delimiter
      types:
          article :
              mappings:
                    articleNumber: 
                    shortName:  [ boost: 6, analyzer : custom_analyzer, custom_search_analyzer, my_analyzer]
                    shortDescription:
                        index_analyzer : custom_analyzer
                        search_analyzer : custom_search_analyzer
                    longDescription: 
                        index_analyzer : custom_analyzer
                        search_analyzer : custom_search_analyzer
              persistence:
                  driver: orm
                  model: IndexBundle\Entity\Articles
                  finder: ~
                  provider: ~
                  listener: ~           
这是我的控制器:

 $query = new \Elastica\Query\Match();

 $query->setFieldQuery(‘shortName’, $searchTerm);
 $query->setFieldFuzziness(‘shortName’, 0.7);
 $query->setFieldMinimumShouldMatch(‘shortName’, ’80%’);

 $boolQuery = new \Elastica\Query\Bool();
 $boolQuery->addMust($query);
 $baseQuery = $query;

 $filtered = new \Elastica\Query\Filtered($baseQuery);

 $query = \Elastica\Query::create($filtered);

 $articles = $finder->find($query);