2014-06-22 17 views
8

Ich versuche eine Abfrage in der elastischen Suche zu erstellen, um innerhalb des Textes mehrerer Felder zu suchen, zum Beispiel: Titel und Beschreibung sind die Felder und ich möchte nach "obama" suchen, " Welt "," Nachrichten "in diesen 3 Bereichen. Ich habe die Suche tryed und Informationen und in Elastic Website hier:
http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/query-dsl-multi-match-query.html#_literal_fields_literal_and_per_field_boosting Aber das Problem ist, wenn ich diese Strukturen versucht, es zu Fehlern:
Erstens:Elastische Suche mehrere Schlüsselwörter in mehreren Feldern

{ 
    "multi_match" : { 
    "query":  "obama world news", 
    "type":  "cross_fields", 
    "fields":  [ "Title", "Description" ], 
    "operator": "and" 
    } 
} 

Es produziert Fehler wie folgt aus:

{ 
    "error": "SearchPhaseExecutionException[Failed to execute phase [query], all shards failed; shardFailures {[0CTkBM0pQGK1MzYEDlrpcQ][republishan2][0]: SearchParseException[[republishan2][0]: from[-1],size[-1]: Parse Failure [Failed to parse source [ {\n  \"multi_match\" : {\n  \"query\":  \"obama world news\",\n  \"type\":  \"cross_fields\",\n  \"fields\":  [ \"Title\", \"Description\" ],\n  \"operator\": \"and\"\n  }\n }]]]; nested: SearchParseException[[republishan2][0]: from[-1],size[-1]: Parse Failure [No parser for element [multi_match]]]; }{[0CTkBM0pQGK1MzYEDlrpcQ][republishan2][3]: SearchParseException[[republishan2][3]: from[-1],size[-1]: Parse Failure [Failed to parse source [ {\n  \"multi_match\" : {\n  \"query\":  \"obama world news\",\n  \"type\":  \"cross_fields\",\n  \"fields\":  [ \"Title\", \"Description\" ],\n  \"operator\": \"and\"\n  }\n }]]]; nested: SearchParseException[[republishan2][3]: from[-1],size[-1]: Parse Failure [No parser for element [multi_match]]]; }{[0CTkBM0pQGK1MzYEDlrpcQ][republishan2][4]: SearchParseException[[republishan2][4]: from[-1],size[-1]: Parse Failure [Failed to parse source [ {\n  \"multi_match\" : {\n  \"query\":  \"obama world news\",\n  \"type\":  \"cross_fields\",\n  \"fields\":  [ \"Title\", \"Description\" ],\n  \"operator\": \"and\"\n  }\n }]]]; nested: SearchParseException[[republishan2][4]: from[-1],size[-1]: Parse Failure [No parser for element [multi_match]]]; }{[0CTkBM0pQGK1MzYEDlrpcQ][republishan2][1]: SearchParseException[[republishan2][1]: from[-1],size[-1]: Parse Failure [Failed to parse source [ {\n  \"multi_match\" : {\n  \"query\":  \"obama world news\",\n  \"type\":  \"cross_fields\",\n  \"fields\":  [ \"Title\", \"Description\" ],\n  \"operator\": \"and\"\n  }\n }]]]; nested: SearchParseException[[republishan2][1]: from[-1],size[-1]: Parse Failure [No parser for element [multi_match]]]; }{[0CTkBM0pQGK1MzYEDlrpcQ][republishan2][2]: SearchParseException[[republishan2][2]: from[-1],size[-1]: Parse Failure [Failed to parse source [ {\n  \"multi_match\" : {\n  \"query\":  \"obama world news\",\n  \"type\":  \"cross_fields\",\n  \"fields\":  [ \"Title\", \"Description\" ],\n  \"operator\": \"and\"\n  }\n }]]]; nested: SearchParseException[[republishan2][2]: from[-1],size[-1]: Parse Failure [No parser for element [multi_match]]]; }]", 
    "status": 400 
} 

ich habe auch diese Abfrage versucht:

{ 
    "sort": { 
     "re_max": { 
      "order": "desc" 
      } 
      }, 
    "query": { 
     "multi_match" : { 
     "query":  "obama world news", 
     "type":  "cross_fields", 
     "fields":  [ "Title", "Description" ], 
     "operator": "and" 
     } 
    }, 
    "from": 0, 
    "size": 30} 
} 

Und das ist das Ergebnis:

{ 
    "error": "SearchPhaseExecutionException[Failed to execute phase [query], all shards failed; shardFailures {[0CTkBM0pQGK1MzYEDlrpcQ][republishan2][0]: SearchParseException[[republishan2][0]: from[-1],size[-1],sort[<custom:\"re_max\": org.elasticse[email protected]1ef6a497>!]: Parse Failure [Failed to parse source [{\n\t\"sort\": {\n\t\t\"re_max\": {\n\t\t\t\"order\": \"desc\"\n\t\t\t}\n\t\t\t}, \n\t{\n  \"multi_match\" : {\n  \"query\":  \"obama world news\",\n  \"type\":  \"cross_fields\",\n  \"fields\":  [ \"Title\", \"Description\" ],\n  \"operator\": \"and\"\n  }\n\t},\n\t\"from\": 0, \n\t\"size\": 30}\n}]]]; nested: JsonParseException[Unexpected character ('{' (code 123)): was expecting either valid name character (for unquoted name) or double-quote (for quoted) to start field name\n at [Source: [[email protected]; line: 7, column: 3]]; }{[0CTkBM0pQGK1MzYEDlrpcQ][republishan2][3]: SearchParseException[[republishan2][3]: from[-1],size[-1],sort[<custom:\"re_max\": org.elasticse[email protected]364d93ed>!]: Parse Failure [Failed to parse source [{\n\t\"sort\": {\n\t\t\"re_max\": {\n\t\t\t\"order\": \"desc\"\n\t\t\t}\n\t\t\t}, \n\t{\n  \"multi_match\" : {\n  \"query\":  \"obama world news\",\n  \"type\":  \"cross_fields\",\n  \"fields\":  [ \"Title\", \"Description\" ],\n  \"operator\": \"and\"\n  }\n\t},\n\t\"from\": 0, \n\t\"size\": 30}\n}]]]; nested: JsonParseException[Unexpected character ('{' (code 123)): was expecting either valid name character (for unquoted name) or double-quote (for quoted) to start field name\n at [Source: [[email protected]; line: 7, column: 3]]; }{[0CTkBM0pQGK1MzYEDlrpcQ][republishan2][4]: SearchParseException[[republishan2][4]: from[-1],size[-1],sort[<custom:\"re_max\": org.elasticse[email protected]6e98bb14>!]: Parse Failure [Failed to parse source [{\n\t\"sort\": {\n\t\t\"re_max\": {\n\t\t\t\"order\": \"desc\"\n\t\t\t}\n\t\t\t}, \n\t{\n  \"multi_match\" : {\n  \"query\":  \"obama world news\",\n  \"type\":  \"cross_fields\",\n  \"fields\":  [ \"Title\", \"Description\" ],\n  \"operator\": \"and\"\n  }\n\t},\n\t\"from\": 0, \n\t\"size\": 30}\n}]]]; nested: JsonParseException[Unexpected character ('{' (code 123)): was expecting either valid name character (for unquoted name) or double-quote (for quoted) to start field name\n at [Source: [[email protected]; line: 7, column: 3]]; }{[0CTkBM0pQGK1MzYEDlrpcQ][republishan2][1]: SearchParseException[[republishan2][1]: from[-1],size[-1],sort[<custom:\"re_max\": org.elasticse[email protected]6c0543f7>!]: Parse Failure [Failed to parse source [{\n\t\"sort\": {\n\t\t\"re_max\": {\n\t\t\t\"order\": \"desc\"\n\t\t\t}\n\t\t\t}, \n\t{\n  \"multi_match\" : {\n  \"query\":  \"obama world news\",\n  \"type\":  \"cross_fields\",\n  \"fields\":  [ \"Title\", \"Description\" ],\n  \"operator\": \"and\"\n  }\n\t},\n\t\"from\": 0, \n\t\"size\": 30}\n}]]]; nested: JsonParseException[Unexpected character ('{' (code 123)): was expecting either valid name character (for unquoted name) or double-quote (for quoted) to start field name\n at [Source: [[email protected]; line: 7, column: 3]]; }{[0CTkBM0pQGK1MzYEDlrpcQ][republishan2][2]: SearchParseException[[republishan2][2]: from[-1],size[-1],sort[<custom:\"re_max\": org.elasticse[email protected]215084be>!]: Parse Failure [Failed to parse source [{\n\t\"sort\": {\n\t\t\"re_max\": {\n\t\t\t\"order\": \"desc\"\n\t\t\t}\n\t\t\t}, \n\t{\n  \"multi_match\" : {\n  \"query\":  \"obama world news\",\n  \"type\":  \"cross_fields\",\n  \"fields\":  [ \"Title\", \"Description\" ],\n  \"operator\": \"and\"\n  }\n\t},\n\t\"from\": 0, \n\t\"size\": 30}\n}]]]; nested: JsonParseException[Unexpected character ('{' (code 123)): was expecting either valid name character (for unquoted name) or double-quote (for quoted) to start field name\n at [Source: [[email protected]; line: 7, column: 3]]; }]", 
    "status": 400 
} 

Ich verwende Postman Ruhe Client die Abfrage auszuführen. Was ist das Problem mit meinem Code?

Antwort

18

Versuchen Sie, wie diese

hoffen, es hilft ..!

Verwandte Themen