Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    170

    ricerca su db sql parola esatta

    Ciao a tutti,

    ho un database sql server con dei campi indicizzati in full text

    ho bisogno di cercare sul campo città la citta "monte" e ho bisogno che mi restitutisca solo i campi che contengono solo "monte" mentre mi restituisce tutti i campi "monte" e anche "monte" + altre parole.


    Uso il predicato contains "where contains (citta,'monte')"

    Non posso usare una query con "where citta = monte" o con "where citta like monte" perchè è troppo lenta.

    Come posso farmi restituire solo i record che hanno il campo esatto con il predicato contains?
    I migliori teologi delle principali religioni della terra mettono in rete 10.000 supercomputers, caricati con la base di conoscenza umana e pongono la fatidica domanda:
    - Dio esiste? Il mostro dalle 10.000 teste ci ragiona sopra per 7 giorni e poi risponde: "ORA SI!"

  2. #2
    CONTAINS cerca frasi che *contengono*... per l'uguaglianza devi usare
    WHERE citta='monte'
    non credo esistano alternative...

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    170
    Grazie, speravo che esistesse qualcosa tipo "monte e basta.."

    C'è un modo per indicizzare un campo di testo?

    Per esempio:

    Monte c'è nel record 1,8,45,9859,48498

    questo velocizzerebbbe di molto...
    I migliori teologi delle principali religioni della terra mettono in rete 10.000 supercomputers, caricati con la base di conoscenza umana e pongono la fatidica domanda:
    - Dio esiste? Il mostro dalle 10.000 teste ci ragiona sopra per 7 giorni e poi risponde: "ORA SI!"

  4. #4
    ma cosa intendi per 'lento'? e quanti record hai? quale è la dimensione del tuo campo testo?

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    170
    i record sono 3.500.000 sono nvarchar 50, ci bada oltre 6 secondi per dare risultati.

    praticamente ho una query full text che mi cerca in dei campi informativi poi gli do la provincia e la citta per raffinare la ricerca

    comunicati ufficiali - milano - mi

    cerco comunicati ufficiali con il predicato containstable con il rank.
    localizzo la ricerca where citta = milano e provincia = mi

    Non posso cabvare la provincia perchè alcune località italiane hanno lo stesso nome.
    I migliori teologi delle principali religioni della terra mettono in rete 10.000 supercomputers, caricati con la base di conoscenza umana e pongono la fatidica domanda:
    - Dio esiste? Il mostro dalle 10.000 teste ci ragiona sopra per 7 giorni e poi risponde: "ORA SI!"

  6. #6
    tre domande, una risposta. forse nel 2012 riusciamo a venirne fuori

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    170
    pardon, sarò piu esauriente....

    i record sono 3.500.000 sono nvarchar 50, ci bada oltre 6 secondi per dare risultati se metto citta = valore and provincia = valore

    se li tolgo è immediato, come se metto contains citta,milano and contains provincia,mi
    I migliori teologi delle principali religioni della terra mettono in rete 10.000 supercomputers, caricati con la base di conoscenza umana e pongono la fatidica domanda:
    - Dio esiste? Il mostro dalle 10.000 teste ci ragiona sopra per 7 giorni e poi risponde: "ORA SI!"

  8. #8
    puoi postare tutta la query, nelle due versioni (con e senza WHERE CITTA=....)?

  9. #9
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    170
    questa è quella con il where = ...

    select top 300 doc.id, doc.ragsoc, doc.attivita, doc.mail, doc.web, doc.skype, doc.clmessenger, doc.clscheda, p.rank
    from doc as doc
    inner join freetexttable
    (doc,(clfts), 'formsof(inflectional, programmazione)') as p
    on doc.clid = p.[key]
    where citta = 'milano' and provincia = 'mi' and reg = 'pubblico'
    order by p.rank desc


    questa è quella con il contains moolto piu performante ma imprecisa

    select top 300 doc.id, doc.ragsoc, doc.attivita, doc.mail, doc.web, doc.skype, doc.clmessenger, doc.clscheda, p.rank
    from doc as doc
    inner join freetexttable
    (doc,(clfts), 'formsof(inflectional, programmazione)') as p
    on doc.clid = p.[key]
    where contains (citta,'milano') and contains (provincia,'mi')
    order by p.rank desc
    I migliori teologi delle principali religioni della terra mettono in rete 10.000 supercomputers, caricati con la base di conoscenza umana e pongono la fatidica domanda:
    - Dio esiste? Il mostro dalle 10.000 teste ci ragiona sopra per 7 giorni e poi risponde: "ORA SI!"

  10. #10
    i campi

    citta, provincia e reg

    di quale tabella fanno parte?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.