Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Full Text Search και Ελληνικά σε SQL Server 2000

Îåêßíçóå áðü ôï ìÝëïò nickCole. Τελευταία δημοσίευση από το μέλος GhostShip στις 13-03-2006, 17:05. Υπάρχουν 11 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  08-11-2005, 19:02 6907

    Full Text Search και Ελληνικά σε SQL Server 2000

    Καλησπέρα σε όλους και καλώς μας ήρθε ο νέος SQLServer2005

    Θα ήθελα να ρωτήσω αν έχει ασχοληθεί κάποιος με FullText Search σε SqlServer 2000 και ελληνική γλώσσα

    Επισήμως από τη MS δεν υποστηρίζεται η Ελληνική γλώσσα (υπάγεται στο Neutral οπότε δεν μπορείς να έχεις τις ρίζες των λέξεων και να ψάνχεις με αυτές -στα Αγγλικά δίνεις dry και σου βρίσκει και κείμενα που έχουν dried διότι έχουν την ίδια ρίζα- στα ελληνικά αυτό δεν φαίνεται να μπορεί να γίνει διότι δεν υπάρχει σχετικό αρχείο με τις ρίζες των λέξεων -έτσι νομίζω τουλάχιστον-). 

    ΄Εχω δοκιμάσει να δημιουργήσω full text catalogs σε στήλες που περιέχουν ελληνικά (ntext) αλλά το FREETEXT και το CONTAINS δεν παίζει οπότε δεν μπορώ να δουλέψω το Full Text Search σε ελληνικά

    Υπάρχει κάποιος που να έχει δουλέψει FullTextSearch σε Ελληνικά και να του έχει φέρει ικανοποιητικά αποτελέσματα σε SQLServer2000?

    Thanks in advance

    nickCole 

  •  08-11-2005, 19:12 6910 σε απάντηση της 6907

    Απ: Full Text Search και Ελληνικά σε SQL Server 2000

    Δες μια δικιά μου sql που κάνει search:



      Dim CommandText As String = "" & _
      " (" & _
      " (SELECT TOP 50 0 AS Type, dbo.Categories.ID  , FT_TBL.Title AS Title, FT_TBL.Description, KEY_TBL.RANK FROM dbo.CategoryStrings    FT_TBL INNER JOIN  FREETEXTTABLE(CategoryStrings   , *, '" & SearchString & "') KEY_TBL ON FT_TBL.ID = KEY_TBL.[KEY] INNER JOIN  dbo.Categories   ON FT_TBL.CategoryID    = dbo.Categories.ID    WHERE (FT_TBL.LanguageID = " & LanguageID & "))" & _
      " UNION ALL " & _
      " (SELECT TOP 50 1 AS Type, dbo.Products.ID    , FT_TBL.Title AS Title, FT_TBL.Description, KEY_TBL.RANK FROM dbo.ProductStrings     FT_TBL INNER JOIN  FREETEXTTABLE(ProductStrings    , *, '" & SearchString & "') KEY_TBL ON FT_TBL.ID = KEY_TBL.[KEY] INNER JOIN  dbo.Products     ON FT_TBL.ProductID     = dbo.Products.ID      WHERE (FT_TBL.LanguageID = " & LanguageID & "))" & _
      " UNION ALL " & _
      " (SELECT TOP 50 2 AS Type, dbo.Publications.ID, FT_TBL.Title AS Title, FT_TBL.Description, KEY_TBL.RANK FROM dbo.PublicationStrings FT_TBL INNER JOIN  FREETEXTTABLE(PublicationStrings, *, '" & SearchString & "') KEY_TBL ON FT_TBL.ID = KEY_TBL.[KEY] INNER JOIN  dbo.Publications ON FT_TBL.PublicationID = dbo.Publications.ID  WHERE (FT_TBL.LanguageID = " & LanguageID & "))" & _
      " )" & _
      " ORDER BY rank DESC"

    Τώρα για το ικανοποιητικό δεν ξέρω, αλλά μέσες άκρες κάνει ότι search κάνει και το google (πρέπει να πετύχεις ακριβώς το substring στα ελληνικά).


    Χρήστος Γεωργακόπουλος
  •  08-11-2005, 20:52 6917 σε απάντηση της 6907

    Απ: Full Text Search και Ελληνικά σε SQL Server 2000

    Δεν υπάρχει ελληνικό Full Text Search ούτε για τον 2000 ούτε για τον 2005. Υπάρχουν κάποιες εταιρείες που έχουν βγάλει fts σαν ανεξάρτητο προϊόν για τα ελληνικά, καμμία όμως δεν έχει βγάλει κάτι που να ενσωματώνεται στον sql server. Ίσως να μην θέλουν να υλοποιήσουν το IFilter API για να συνδεθούν με τον sql server.
    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  08-11-2005, 21:53 6925 σε απάντηση της 6917

    Απ: Full Text Search και Ελληνικά σε SQL Server 2000

    Δεν μπορώ να καταλάβω, βρε Παναγιώτη. Το MS Search Service, λίγο ως πολύ είναι ίδιο σε όλα τα προιόντα που το χρησιμοποιούν - SQL Server, Exchange, SharePoint Portal Server. Για τον SharePoint Portal Server υπάρχει το update "SharePoint Portal Server 2003 Word Breaker Update" που έχει υποστήριξη και για την ελληνική γλώσσα. Αυτό πως και δεν έχει περάσει στις καινούργιες εκδόσεις του Search Service;

     

    George J.

     


    George J. Capnias: Χειροπρακτικός Υπολογιστών, Ύψιστος Γκουράρχης της Κουμπουτερολογίας
    w: capnias.org, t: @gcapnias, l: gr.linkedin.com/in/gcapnias
    dotNETZone.gr News
  •  08-11-2005, 22:11 6926 σε απάντηση της 6925

    Απ: Full Text Search και Ελληνικά σε SQL Server 2000

    Δεν ήξερα ότι είχει βγει word breaker για τα ελληνικά, αλλά πάλι δεν αρκεί. Ο word breaker εντοπίζει τις λέξεις σε μία πρόταση καταλαβαίνοντας πιθανές εναλλακτικές μορφές της λέξης, π.χ. database και data base είναι μία λέξη, το database.

    Αυτό που χρειάζεται όμως για να έχεις full text search είναι το stemming, να βρεις δηλαδή τη ρίζα της κάθε λέξης για να μπορέσεις να κάνεις αναζητήσεις με βάση τη ρίζα, όχι τη συγκεκριμμένη λέξη. Π.χ. αν ψάχνεις για το "τρέχω" θα πρέπει να σου επιστρέψει και το "έτρεχα", "τρέχοντας" και όλες τις άλλες μορφές.

    Την τελευταία φορά που έψαξα για ελληνικό stemming, έπεσα σε κάποια paper που έλεγαν ότι η όλη διαδικασία του word-breaking + stemming δεν προσφέρεται για γλώσσες με περίπλοκη γραμματική όπως τα ελληνικά. Ίσως και αυτό να παίζει το ρόλο του.
    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  22-02-2006, 17:14 9981 σε απάντηση της 6925

    Απ: Full Text Search και Ελληνικά σε SQL Server 2000

    Αν έχω καταλάβει καλά το FullTextSearch δουλεύει βασισμένο σε index. Το οποίο και δεν ενημερώνετε άμεσα με τις όποιες αλλαγές γίνονται στον πίνακα. Έτσι είναι; Αν ναι, υπάρχει τρόπος να ενημερώνετε άμεσα το index με την αλλαγή των δεδομένων;
  •  23-02-2006, 00:01 10015 σε απάντηση της 9981

    Απ: Full Text Search και Ελληνικά σε SQL Server 2000

    Γενικά η ενημέρωση (population) των indexes του full text search (FTS) γίνεται με schedules. Επειδή ο sql server δεν ξέρει πόσο βαρύ η ελαφρύ είναι το δικό σου population δεν είναι κάτι που μπορεί να προγραμματιστεί αυτόματα.

    Αν έχεις κάτι ελαφρύ, πχ ένα web site με καμιά 500αριά σελίδες, μπορείς να βάλεις ένα πρόγραμμα για incemental population κάθε 10 λεπτά. Αν έχεις μια πολύ μεγάλη βάση για διαχείριση εγγράφων, αλλά και φόρτο εργασίας τις εργάσιμες ώρες, τότε μάλλον θα πρέπει να το προγραμματίσεις να γίνεται κάθε βράδυ.


    Χρήστος Γεωργακόπουλος
  •  23-02-2006, 15:02 10045 σε απάντηση της 9981

    Απ: Full Text Search και Ελληνικά σε SQL Server 2000

    Ωραία. Ευχαριστώ πολύ για την απάντηση. Τώρα θα ψάξω να βρω πως συμπεριφέρετε και με τα html tags.. Κάπου διάβασα ότι τα φιλτράρει, αλλά συνιστούν να μπει σαν γλώσσα neutral, οπότε μάλλον θα υπάρχει πρόβλημα με τα Ελληνικά...
  •  23-02-2006, 21:45 10066 σε απάντηση της 10045

    Απ: Full Text Search και Ελληνικά σε SQL Server 2000

    Με τα ελληνικά δεν υπάρχει πρόβλημα αν γίνει σωστή ρύθμιση. Ιδέα: Αν τα html tags σου δημιουργούν πρόβλημα, τότε σε κάθε update μπορείς να ενημερώνεις και ένα διπλανό, πρόσθετο πεδίο στο οποίο θα βάζεις τα κείμενά σου αφού κάνεις strip την html (θα βρεις εύκολα κώδικα για το strip). Αυτό το πεδίο δεν θα το βλέπει ποτέ ο χρήστης, αλλά θα το χρησιμοποιείς για το indexing και το search. (Όταν ψάχνει κάποιος ψάχνεις σε αυτό, αλλά στο τέλος του εμφανίζεις το περιεχόμενο του κανονικού πεδίου που έχει τη σωστή html)
    Χρήστος Γεωργακόπουλος
  •  24-02-2006, 12:16 10076 σε απάντηση της 6907

    Απ: Full Text Search και Ελληνικά σε SQL Server 2000

    Σωστή ρύμιση είναι το Collation να είναι Greek_CI_AI από όσο έχω διαβάσει. Πολύ καλή ιδέα και αυτή που προτείνεις... Ελπίζω να βρω χρόνο θα το κοιτάξω μέσα στις επόμενες ημέρες.. :)
  •  03-03-2006, 16:44 10338 σε απάντηση της 6907

    Απ: Full Text Search και Ελληνικά σε SQL Server 2000

    Παίζει και το collation τον ρόλο του αλλά όχι και τόσο καταλυτικό. Και πάλι όπως λέει και ο Παναγιώτης, και που είχα ψάξει και εγώ για full text search, έπεσα πάνω στο οτι η γραμματική της Ελληνικής γλώσσας είναι αρκετά περίπλοκη, ώστε να μην υποστηρίζεται πλήρως.

    Οπότε μόνο με κάποιες ας τις πούμε "πατέντες" - "workarounds" θα μπορούσε να παίξει το FTS όπως αυτή που περιγράφει ο cgeo, αλλά και πάλι μέχρι ενός σημείου.
    σε αυτή τη ζωη τιποτα δεν ειναι τυχαιο
  •  13-03-2006, 17:05 10607 σε απάντηση της 6907

    Απ: Full Text Search και Ελληνικά σε SQL Server 2000

    Επειδή με απασχόλησε εκ νέου το συγκεκριμένο πρόβλημα έθεσα το ερώτημα στην Microsoft, στο Ελληνικό newsgroup, για partners.

    Μου απάντησαν από την microsoft τα εξής:

    "Για να μπορέσετε να κάνετε Text Search στα Ελληνικά θα πρέπει προτού εγκαταστήσετε τον SQL Server να έχετε ρυθμίσει το λειτουργικό σύστημα από τα Regional Settings να υποστηρίζει Ελληνικά και κατά την εγκατάσταση του SQL Server να επιλέξετε Unicode γραμματοσειρά."

    Αυτή είναι η απάντηση της microsoft.


    Μετά έκανα ένα search στον δικτυακό τόπο της microsoft και βρήκα το εξής :
    http://support.microsoft.com/default.aspx?scid=kb;en-us;323739

    και κατέβασα το white paper ( το exe δηλαδή που έχει εκεί και που κάνει extract ενα word αρχειο).

    Αυτό το έγγραφο, έχει τα πάντα που χρειάζονται για να στηθεί το FULL TEXT SEARCH, και σε συνδυασμό των παραπάνω που μου είπαν από την Microsoft, φαντάζομαι οτι θα γίνεται η δουλειά...
    σε αυτή τη ζωη τιποτα δεν ειναι τυχαιο
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems