Выделение Elasticsearch не выделяет результаты

#elasticsearch

#elasticsearch

Вопрос:

Я тестирую ES, и я бы выделил результаты запроса, но это не работает с моим простым запросом :

             var myQuery = {
                "query": {
                    "bool": {
                        "must": {
                            "query_string": {
                                "query": mySearchText   "~3"
                            }
                        }
                    }
                },
                "highlight": {
                    "fields": {
                        "*":{}
                    }
                }
            };
  

Где я допустил какую-то ошибку, пожалуйста?
Спасибо за все.

PS: это образец документа

             {
                "id_stage" : "3897",
                "intitule_stage" : "Le surendettement des particuliers",
                "objectifs" : "Acquu00e9rir les compu00e9tences suivantes :rn*Connau00eetre de maniu00e8re approfondie les dispositions de la loi sur le surendettement des particuliers.rn*Mau00eetriser la procu00e9dure.",
                "contenu" : "*Introduction :rn-Du00e9finitions. Bilans chiffru00e9s. Statistiques.rn-La procu00e9dure de la Loi Borloo (juin 2003 et du00e9cret 2004) : le "ru00e9tablissement personnel".rn-La loi Lagarde (juillet 2010) et ses du00e9crets d'application.rn-Pru00e9vention du surendettement.rn*Les conditions gu00e9nu00e9rales d'application de la procu00e9dure de surendettement :rn-Un du00e9biteur, personne physique de bonne foi.rn-Un u00e9tat de surendettement.rn-Des dettes non professionnelles exigibles et u00e0 u00e9choir.rn*La procu00e9dure devant la commission de surendettement :rn-Ouverture, du00e9roulement et clu00f4ture de la procu00e9dure.rn*La procu00e9dure devant le juge de l'exu00e9cution :rn-Absence de contestation des mesures recommandu00e9es par la commission de surendettement.rn-Contestation des mesures recommandu00e9es par la commission.rn-Consu00e9quences de la force exu00e9cutoire.",
                "pre_requis" : "",
                "mmp" : "",
                "sessions" : [{
                        "id_session" : "4775",
                        "debut" : "2016-11-29",
                        "date_fin" : "2016-12-02",
                        "ville" : "PARIS"
                    }
                ]
            }
  

Ответ №1:

Если вы хотите выделить соответствующие сегменты во всех полях, вам следует использовать

 "highlight": {
  "fields": {
    "_all":{}
  }
}
  

Вместо

 "highlight": {
  "fields": {
    "*":{}
  }
}
  

Комментарии:

1. Это не кажется лучше, возвращаемый json не имеет выделения, он выглядит так: Object {_index: «cerf», _type: «stages», _id: «AVeVL_MJ_dxMRsa6qXrw», _score: 0.11006123, _source: Object} _id: «AVeVL_MJ_dxMRsa6qXrw» _index: «cerf» _score : 0.11006123_source: объект _type: «этапы» прото : Объект

2. Можете ли вы добавить образец документа к своему вопросу?

3. Yes { «id_stage» : «3897», «intitule_stage» : «Le surendettement des particuliers», «objectifs» : «Acquu00e9rir les come surendettement des particuliers.rn*Mau00eetriser la procu00e9dure.», «contenu» : «*Introduction :rn-Du00e9finitions. enttoire.», «pre_requis»: «», «mmp»: «», «sessions»: [{ «id_session»: «4775», «debut»: «2016-11-29», «date_fin»: «2016-12-02», «ville»: «ПАРИЖ» } ] }

4. Есть ли кто-нибудь, кто может помочь заставить функцию выделения работать?

Ответ №2:

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

Поле может использоваться для выделения, только если доступно исходное строковое значение, либо из поля _source, либо в виде сохраненного поля.

Поле _all отсутствует в поле _source, и оно не сохраняется или не включено по умолчанию, и поэтому не может быть выделено. Есть два варианта. Либо сохраните поле _all, либо выделите исходные поля.

http://nocf-www.elastic.co/guide/en/elasticsearch/reference/current/mapping-all-field.html#highlighting-all-field