2016-04-07 3 views
0

Je n'arrive pas à obtenir des objets imbriqués à mettre en évidence lors de l'utilisation d'une recherche _all.ElasticSearch Nest 2.x Mettre en évidence l'objet imbriqué avec _all Recherche

Mon index:

{ 
    "settings":{ 
     "analysis":{ 
     "analyzer":{ 
      "nGramAnalyzer":{ 
       "type":"custom", 
       "filter":[ 
        "lowercase", 
        "asciifolding", 
        "NGramFilter" 
       ], 
       "tokenizer":"WhitespaceTokenizer" 
      }, 
      "WhitespaceAnalyzer":{ 
       "type":"custom", 
       "filter":[ 
        "lowercase", 
        "asciifolding" 
       ], 
       "tokenizer":"WhitespaceTokenizer" 
      }, 
     }, 
     "filter":{ 
      "NGramFilter":{ 
       "type":"ngram", 
       "min_gram":1, 
       "max_gram":20 
      } 
     }, 
     "tokenizer":{ 
      "WhitespaceTokenizer":{ 
       "type":"whitespace" 
      } 
     } 
     } 
    }, 
    "mappings":{ 
     "CustomerSearchResult":{ 
     "_all":{ 
      "analyzer":"nGramAnalyzer", 
      "search_analyzer":"WhitespaceAnalyzer" 
     }, 
     "properties":{ 
      "customerId":{ 
       "type":"string", 
       "index":"not_analyzed" 
      }, 
      "remarks":{ 
       "type":"nested", 
       "properties":{ 
        "remarkId":{ 
        "type":"integer" 
        }, 
        "customerId":{ 
        "type":"integer" 
        }, 
        "remarkText":{ 
        "type":"string", 
        "index":"analyzed", 
        "analyzer":"nGramAnalyzer", 
        "search_analyzer":"WhitespaceAnalyzer" 
        } 
       } 
      }, 
     } 
     } 
    } 
} 

Ma Recherche:

{ 
    "from":0, 
    "size":100, 
    "highlight":{ 
     "pre_tags":[ 
     "<b>" 
     ], 
     "post_tags":[ 
     "<b>" 
     ], 
     "fields":{ 
     "remarks.remarkText":{ 

     } 
     } 
    }, 
    "_source":{ 
     "exclude":[ 
     "remarks" 
     ] 
    }, 
    "query":{ 
     "match":{ 
     "_all":{ 
      "query":"test", 
      "operator":"and" 
     } 
     } 
    } 
} 

Si je fais une recherche à l'aide d'une requête imbriquée, je reçois les faits saillants, mais je dois chercher _all. J'ai essayé de paramétrer include dans parent, include dans root, mais cela n'a pas fait de différence. J'exclus les remarques parce que je ne veux pas les renvoyer réellement, juste leurs points culminants. J'ai essayé la requête sans l'exclure aussi.

Je n'ai besoin que de surbrillances pour l'objet imbriqué.

+0

Je ne suis pas sûr si cela est possible, ayez un [look] (https://www.elastic.co/guide/en/elasticsearch/guide/current/nested-query.html). – Rob

+0

On dirait qu'il devrait être d'ici https://www.elastic.co/guide/en/elasticsearch/reference/1.4/mapping-nested-type.html "Vous pouvez vouloir indexer les objets internes à la fois comme des champs imbriqués et comme aplati champs d'objet, par exemple pour la mise en évidence, ce qui peut être réalisé en définissant include_in_parent sur true " –

Répondre

1

J'ai dû utiliser RequireFieldMatch (false) sur la surbrillance.

+0

Woot! C'était surprenant. –