2014-08-26 4 views
0

Я создал фасет, используя elasticsearch, но хочу отфильтровать его только для определенных слов.Фильтры граней Elasticearch

{ 
    ... 
    "facets": { 
    "my_facets": { 
     "terms": { 
     "field": "description", 
     "size": 1000 
     } 
    } 
    } 
} 

И результат содержит все слова из описания.

{ 
    "my_facet": { 
    "_type": "terms", 
    "missing": 0, 
    "total": 180, 
    "other": 0, 
    "terms": [ 
     { 
     "term": "și", 
     "count": 1 
     }, 
     { 
     "term": "światłowska", 
     "count": 1 
     }, 
     { 
     "term": "łódź", 
     "count": 1 
     } 
    ] 
    } 
} 

Я хочу, чтобы мои грани содержали анализ только для определенных слов, а не для целых слов, которые были найдены в описании.
Я уже пытался использовать спичку запроса в моей фаске, но это делает общий анализ нравятся следующий

{ 
    "query_Facet_test": { 
    "query": { 
     "match": { 
     "description": "word1 word2" 
     } 
    } 
    } 
} 

и результат я получаю:

{ 
    "query_Facet_test": { 
    "_type": "query", 
    "count": 1 
    } 
} 
+0

Пожалуйста обнажить в виду, что [фасеты] (http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-facets. html) в будущем заменяются [aggregations] (http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-aggregations.html), поэтому лучше начать с них. – Thorsten

+0

Я знаю это, но я использую расширение yii2 elasticsearch, которое поддерживает только грани. – KB9

ответ

1

Вы можете использовать запрос Его как это, чтобы получить запрос гранях

{ 
    "query": { 
     "bool": { 
      "must": [ 
       { 
        "match": { 
         "description": "word1" 
        } 
       }, 
       { 
        "match": { 
         "description": "word2" 
        } 
       } 
      ] 
     } 
    }, 
    "facets": { 
     "my_facets": { 
      "terms": { 
       "field": "description", 
       "size": 1000 
      } 
     } 
    } 
} 
+0

Я определил поисковый запрос с конкретными фильтрами, но я хочу, чтобы только word1 и word2 анализировались в фасетке. Этот запрос возвращает анализ для каждого слова, найденного в описании – KB9

Смежные вопросы