Améliorations au moteur de recherche
This commit is contained in:
parent
fc6bd9f255
commit
4c68b473e1
1 changed files with 13 additions and 10 deletions
|
@ -136,8 +136,6 @@ st.title('Recherche dans tes contenus publiés sur le web')
|
|||
collections = client.collections.retrieve()
|
||||
total_documents = sum(collection['num_documents'] for collection in collections)
|
||||
|
||||
st.write(f"Total documents indexés: {total_documents}")
|
||||
|
||||
# Champ de recherche
|
||||
requete = st.text_input('Entrez votre requête de recherche')
|
||||
|
||||
|
@ -146,15 +144,14 @@ col1, col2 = st.columns(2)
|
|||
date_debut = col1.date_input('Date de début', value=datetime.now() - pd.DateOffset(years=1))
|
||||
date_fin = col2.date_input('Date de fin', value=datetime.now())
|
||||
|
||||
# Filtre de réseau social
|
||||
# Filtre de réseau social et de langue
|
||||
|
||||
col3, col4 = st.columns(2)
|
||||
reseaux = get_networks()
|
||||
reseaux_selectionnes = st.multiselect('Sélectionnez les réseaux sociaux', reseaux,
|
||||
reseaux_selectionnes = col3.multiselect('Sélectionnez les réseaux sociaux', reseaux,
|
||||
default=reseaux[0] if reseaux else None)
|
||||
|
||||
# Filtre de langue
|
||||
langues = [('fr', 'Français'), ('en', 'English')]
|
||||
langue_selectionnees = st.multiselect('Sélectionnez la langue',
|
||||
langue_selectionnees = col4.multiselect('Sélectionnez la langue',
|
||||
options=[label for code, label in langues],
|
||||
format_func=lambda x: x,
|
||||
default='Français')
|
||||
|
@ -162,6 +159,9 @@ langue_selectionnees = st.multiselect('Sélectionnez la langue',
|
|||
# Convertir les étiquettes en codes de langage
|
||||
selected_lang_codes = [code for code, label in langues if label in langue_selectionnees]
|
||||
|
||||
# Filtre sur le nombre de mots
|
||||
nombre_mots = st.slider('Nombre de mots minimum', min_value=0, max_value=1000, value=100, step=10)
|
||||
|
||||
if st.button('Rechercher'):
|
||||
# Préparer les filtres
|
||||
debut_datetime = datetime.combine(date_debut, time.min)
|
||||
|
@ -169,15 +169,16 @@ if st.button('Rechercher'):
|
|||
filtre_date = f"creation_timestamp:[{int(debut_datetime.timestamp())}..{int(fin_datetime.timestamp())}]"
|
||||
filtre_reseau = f"network:[{' '.join(reseaux_selectionnes)}]" if reseaux_selectionnes else None
|
||||
filtre_langue = f"langue:[{' '.join(selected_lang_codes)}]" if selected_lang_codes else None
|
||||
filtre_mots = f"nombre_de_mots:[{nombre_mots}..10000]" if nombre_mots > 0 else None
|
||||
|
||||
filtres = ' && '.join(filter(None, [filtre_date, filtre_reseau, filtre_langue]))
|
||||
filtres = ' && '.join(filter(None, [filtre_date, filtre_reseau, filtre_langue, filtre_mots]))
|
||||
|
||||
# Effectuer la recherche pour tous les résultats
|
||||
tous_resultats = rechercher_documents(requete, ces_filtres=filtres, facette_par='network')
|
||||
nombre_total_resultats = tous_resultats['found']
|
||||
|
||||
# Afficher le nombre total de résultats
|
||||
st.subheader(f"Trouvé {nombre_total_resultats} résultats")
|
||||
st.subheader(f"Trouvé {nombre_total_resultats} résultats parmi {total_documents } documents indexés")
|
||||
|
||||
# Affichage des résultats (100 maximum)
|
||||
st.subheader("Résultats de la recherche")
|
||||
|
@ -189,7 +190,9 @@ if st.button('Rechercher'):
|
|||
st.markdown(f"**{hit['document']['network']}**")
|
||||
st.markdown(
|
||||
f"**{datetime.fromtimestamp(hit['document']['creation_timestamp']).strftime('%Y-%m-%d %H:%M:%S')}**")
|
||||
|
||||
st.markdown(f"**{hit['document']['nombre_de_mots']} mots**")
|
||||
# Score
|
||||
st.markdown(f"**Score: {hit["hybrid_search_info"]['rank_fusion_score']}**")
|
||||
# Étiquettes de couleur pour les facettes
|
||||
st.markdown(f"""
|
||||
<span style="background-color: #007bff; color: white; padding: 2px 6px; border-radius: 10px;">
|
||||
|
|
Loading…
Reference in a new issue