Configurazione di filtri personalizzati per Elasticsearch
Utilizzate i filtri personalizzati come impostazione avanzata nei vostri agenti per abilitare tecniche di ricerca più avanzate. Configurare i filtri personalizzati per utilizzarli come filtri globali da applicare a tutte le query degli utenti.
Il seguente frammento di codice mostra un esempio di filtro personalizzato:
[
{
"bool": {
"must": [
{
"term": {
"title": "A title"
}
}
],
}
}
]
Se si configura anche un corpo di query personalizzato come impostazione avanzata di Elasticsearch, includere la variabile $FILTER nel corpo della query per applicare i filtri personalizzati.
Il seguente frammento di codice mostra un esempio di corpo della query con la variabile $FILTER :
{
"query": {
"bool": {
"should": [
{
"text_expansion": {
"ml.tokens": {
"model_id": ".elser_model_2_linux-x86_64",
"model_text": "$QUERY"
}
}
}
],
"filter": "$FILTER"
}
}
}
Esempi di oggetti filtro
Esplorate i casi d'uso per filtrare i risultati della ricerca con filtri personalizzati. Gli esempi seguenti presuppongono che i campi title, text e id siano disponibili nell'indice Elasticsearch. Tra questi, title e text sono campi di tipo testo, mentre id è un campo di tipo parola chiave.
AND
[
{
"match": {
"title": "A_keyword_in_title"
}
},
{
"match": {
"text": "A_keyword_in_text"
}
},
{
"match": {
"id": "A_specific_ID"
}
}
]
Questo oggetto filtro filtra i risultati della ricerca in base alle seguenti condizioni:
titlecontiene "A_keyword_in_title", Etextcontiene "A_parola_chiave_nel_testo", Eidè uguale a "A_specific_ID".
OR
[
{
"bool": {
"should": [
{
"match": {
"title": "A_keyword_in_title"
}
},
{
"match": {
"text": "A_keyword_in_text"
}
},
{
"match": {
"id": "A_specific_ID"
}
}
]
}
}
]
Questo oggetto filtro filtra i risultati della ricerca in base alle seguenti condizioni:
titlecontiene "A_keyword_in_title", OPPUREtextcontiene "A_parola_chiave_nel_testo", OPPUREidè uguale a "A_specific_ID".
NON
[
{
"bool": {
"must_not": [
{
"match": {
"title": "A_keyword_in_title"
}
},
{
"match": {
"text": "A_keyword_in_text"
}
},
{
"match": {
"id": "A_specific_ID"
}
}
]
}
}
]
Questo oggetto filtro filtra i risultati della ricerca in base alle seguenti condizioni:
titlenon contiene "A_keyword_in_title", Etextnon contiene "A_keyword_in_text", Eidnon è uguale a "A_specific_ID".
(a E b) OPPURE c
[
{
"bool": {
"should": [
{
"match": {
"id": "A_specific_ID"
}
}
{
"bool": {
"filter": [
{
"match": {
"title": "A_keyword_in_title"
}
},
{
"match": {
"text": "A_keyword_in_text"
}
}
]
}
}
]
}
}
]
Questo oggetto filtro filtra i risultati della ricerca in base alle seguenti condizioni:
titlecontiene "A_keyword_in_title" ANDtextcontiene "A_keyword_in_text", ORidnon è uguale a "A_specific_ID"
Per ulteriori informazioni sulla query bool , consultare la sezione "Query booleana" nella documentazione di Elasticsearch.