mirror of
https://github.com/standardebooks/web.git
synced 2025-07-14 02:21:55 -04:00
The data in these fields are separate: * `IndexableText` * `Title` * `IndexableAuthors` * `IndexableCollections` There are also on indices on each of these fields so that they can have separate weight in the relevance scoring.
38 lines
1.5 KiB
SQL
38 lines
1.5 KiB
SQL
CREATE TABLE IF NOT EXISTS `Ebooks` (
|
|
`EbookId` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
|
`Identifier` varchar(511) NOT NULL,
|
|
`Created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
`Updated` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
`WwwFilesystemPath` varchar(511) NULL,
|
|
`RepoFilesystemPath` varchar(511) NULL,
|
|
`KindleCoverUrl` varchar(511) NULL,
|
|
`EpubUrl` varchar(511) NULL,
|
|
`AdvancedEpubUrl` varchar(511) NULL,
|
|
`KepubUrl` varchar(511) NULL,
|
|
`Azw3Url` varchar(511) NULL,
|
|
`DistCoverUrl` varchar(511) NULL,
|
|
`Title` varchar(255) NOT NULL,
|
|
`FullTitle` varchar(255) NULL,
|
|
`AlternateTitle` varchar(255) NULL,
|
|
`Description` text NULL,
|
|
`LongDescription` text NULL,
|
|
`Language` varchar(10) NULL,
|
|
`WordCount` int(10) unsigned NULL,
|
|
`ReadingEase` float NULL,
|
|
`GitHubUrl` varchar(255) NULL,
|
|
`WikipediaUrl` varchar(255) NULL,
|
|
`EbookCreated` datetime NULL,
|
|
`EbookUpdated` datetime NULL,
|
|
`TextSinglePageByteCount` bigint unsigned NULL,
|
|
`IndexableText` text NOT NULL,
|
|
`IndexableAuthors` text NOT NULL,
|
|
`IndexableCollections` text NULL,
|
|
PRIMARY KEY (`EbookId`),
|
|
UNIQUE KEY `index1` (`Identifier`),
|
|
KEY `index2` (`EbookCreated`),
|
|
FULLTEXT `idxSearch` (`IndexableText`),
|
|
FULLTEXT `idxSearchTitle` (`Title`),
|
|
FULLTEXT `idxSearchAuthors` (`IndexableAuthors`),
|
|
FULLTEXT `idxSearchCollections` (`IndexableCollections`),
|
|
FULLTEXT `idxSearchCombined` (`IndexableText`, `Title`, `IndexableAuthors`, `IndexableCollections`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|