2014-06-22 16 views
8

Sto cercando di creare una query nella ricerca elastica per cercare all'interno del testo di più campi, ad esempio: Titolo e descrizione sono i campi e voglio cercare "obama", " mondo "," notizie "all'interno di questi 3 campi. Ho provato a cercare e ho trovato le informazioni nel sito web Elastico qui:
http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/query-dsl-multi-match-query.html#_literal_fields_literal_and_per_field_boosting ma il problema è quando ho provato queste strutture si producono errori:
Prime:Ricerca elastica più parole chiave in più campi

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

produce errore come questo:

{ 
    "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 
} 

anche io ho provato questa query:

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

E questo è il risultato:

{ 
    "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 
} 

sto usando cliente Postman Riposo per eseguire la query. Qual è il problema con il mio codice?

risposta

18

Prova come questo

Speranza che aiuta ..!

Problemi correlati