2017-10-11 1 views
0

J'utilise SearchBox de SearchKit 2.2.0 et voudrais faire multi correspondre à la requête avec l'option Type best_fields à ElasticSearch.SearchBox multi match requête avec best_fields type et NON phrase_prefix

  1. Comment définir Type best_fields lorsque j'utilise prefixQueryFields?
  2. Comment faire pour définir correctement prefixQueryOptions objet avec type best_fields?

Si je mets prefixQueryFields attribut, la requête est multi match que je veux, mais le type est phrase_prefix me donne des résultats non préférees. QueryAccessor.ts->this.options.prefixQueryFields->type:"phrase_prefix"

<SearchBox autofocus={true} searchOnChange={true} prefixQueryFields={["fileName^3", "path", "attachment.content", "attachment.author", "attachment.title"]}/>
result query: prefixQueryFields and type phrase_prefix

Si je mets prefixQueryOptions attribut, pour éviter le type phrase_prefix, requête devient juste simple_query_string. Peut-être que j'ai fait une erreur ici, quand j'ai mis prefixQueryOptions objet.

<SearchBox autofocus={true} searchOnChange={true} prefixQueryOptions={{ 
 
\t \t \t \t "fields" : [ "fileName^3", "path", "attachment.content", "attachment.author", "attachment.title" ], 
 
\t \t \t \t "type":  "best_fields" 
 
\t \t \t }}/>
result query: prefixQueryOptions and simple_query_string

search-box

multi-match-types

Répondre

0

QueryBuilder peut fournir une logique plus souple que prefixQueryFields. https://blog.searchkit.co/searchkit-0-9-23d78568d219

const customQueryBuilder = (query, options) => { 
 
    return { 
 
    "multi_match": { 
 
\t \t \t "query": query, 
 
\t \t \t "fields" : [ "fileName^3", "path", "attachment.content", "attachment.author", "attachment.title" ], 
 
\t \t \t "type":  "best_fields" 
 
\t } 
 
    } 
 
} 
 

 
<SearchBox autofocus={true} searchOnChange={true} queryOptions={{analyzer:"standard"}} queryFields={["fileName^3","path","attachment.content","attachment.author","attachment.title","attachment.fileExtension"]} queryBuilder={customQueryBuilder} />

enter image description here