Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [MYSQL] indici fulltext

    Salve a tutti, sto realizzando un motore di ricerca per un mio sito.
    Vorrei sfruttrare gli indici fulltext.
    Il problema è che mi viene restituito sempre il seguente errore:

    Error Number: 1191
    Impossibile trovare un indice FULLTEXT che corrisponda all'elenco delle colonne
    La cosa assurda è che gli indici fulltext ci sono.

    Codice PHP:
    CREATE TABLE `pages` (
      `
    idint(10unsigned NOT NULL auto_increment,
      `
    pathvarchar(100NOT NULL,
      `
    ordineint(11NOT NULL,
      `
    padreint(11NOT NULL,
      `
    titlevarchar(150NOT NULL,
      `
    en_titlevarchar(150NOT NULL,
      `
    menu_titlevarchar(100NOT NULL,
      `
    en_menu_titlevarchar(100NOT NULL,
      `
    bodytext NOT NULL,
      `
    en_bodytext NOT NULL,
      `
    activetinyint(1NOT NULL default '1',
      `
    menuvarchar(10NOT NULL,
      
    PRIMARY KEY  (`id`),
      
    UNIQUE KEY `path` (`path`),
      
    KEY `padre` (`padre`),
      
    FULLTEXT KEY `title` (`title`,`en_title`,`body`,`en_body`)
    ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=20 
    Come query di ricerca ho usato:
    Codice PHP:
    SELECT `id`, `path`, `title`, `body`, (MATCH(bodyAGAINST('prova' IN BOOLEAN MODE) + MATCH(titleAGAINST('prova' IN BOOLEAN MODE)) AS rank FROM (`pages`) WHERE (MATCH(bodyAGAINST('prova' IN BOOLEAN MODE) + MATCH(titleAGAINST('prova')) > '0' ORDER BY `rankDESC LIMIT 10 
    ho provato anche con una query più semplice
    Codice PHP:
    SELECT FROM pages WHERE MATCH(bodyAGAINST('territorio'
    ma ho ottenuto sempre il solito errore.
    Ci tengo a precisare che la tabella non è vuota e ha 16 record.
    Spero qualcun riesca a illuminarmi

    PS
    Versione MySQL: 5.0.27

  2. #2
    Anche questa non ti funziona?

    codice:
    SELECT * FROM pages WHERE MATCH(title) AGAINST('territorio')

  3. #3
    Originariamente inviato da ntd
    Anche questa non ti funziona?

    codice:
    SELECT * FROM pages WHERE MATCH(title) AGAINST('territorio')
    già, solito errore:
    #1191 - Impossibile trovare un indice FULLTEXT che corrisponda all'elenco delle colonne

  4. #4
    For natural-language full-text searches, it is a requirement that the columns named in the MATCH() function be the same columns included in some FULLTEXT index in your table. For the preceding query, note that the columns named in the MATCH() function (title and body) are the same as those named in the definition of the article table's FULLTEXT index. If you wanted to search the title or body separately, you would need to create separate FULLTEXT indexes for each column.
    http://dev.mysql.com/doc/refman/5.0/...-language.html


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    Originariamente inviato da piero.mac

    For natural-language full-text searches, it is a requirement that the columns named in the MATCH() function be the same columns included in some FULLTEXT index in your table. For the preceding query, note that the columns named in the MATCH() function (title and body) are the same as those named in the definition of the article table's FULLTEXT index. If you wanted to search the title or body separately, you would need to create separate FULLTEXT indexes for each column.

    http://dev.mysql.com/doc/refman/5.0/...-language.html

    grazie mille ho risolto, dovevo separare gli indici fulltext, prima erano visti come un unico indice

    Codice PHP:
    CREATE TABLE `pages` (
      `
    idint(10unsigned NOT NULL auto_increment,
      `
    pathvarchar(100NOT NULL,
      `
    ordineint(11NOT NULL,
      `
    padreint(11NOT NULL,
      `
    titlevarchar(150NOT NULL,
      `
    en_titlevarchar(150NOT NULL,
      `
    menu_titlevarchar(100NOT NULL,
      `
    en_menu_titlevarchar(100NOT NULL,
      `
    bodytext NOT NULL,
      `
    en_bodytext NOT NULL,
      `
    activetinyint(1NOT NULL default '1',
      `
    menuvarchar(10NOT NULL,
      
    PRIMARY KEY  (`id`),
      
    UNIQUE KEY `path` (`path`),
      
    KEY `padre` (`padre`),
      
    FULLTEXT KEY `body` (`body`),
      
    FULLTEXT KEY `title` (`title`),
      
    FULLTEXT KEY `en_title` (`en_title`),
      
    FULLTEXT KEY `en_body` (`en_body`)
    ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=20 

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.