web/config/sql/se/Ebooks.sql
Mike Colagrosso 1a71913794 Add a Relevance sort order and improve search
Here's what's in `IndexableText` right now:

1. Title
2. Collections
3. Authors
4. Tags
5. LocSubjects
6. TocEntries

Here is the proposed new ranking:

```
10 * Title +
8 * Authors +
3 * Collections +
IndexableText
```

New indices for existing DBs:

```
ALTER TABLE `Ebooks` ADD COLUMN `IndexableAuthors` text NOT NULL;
ALTER TABLE `Ebooks` ADD COLUMN `IndexableCollections` text NULL;
ALTER TABLE `Ebooks` ADD FULLTEXT `indexSearchTitle` (`Title`);
ALTER TABLE `Ebooks` ADD FULLTEXT `idxSearchAuthors` (`IndexableAuthors`);
ALTER TABLE `Ebooks` ADD FULLTEXT `idxSearchCollections` (`IndexableCollections`);
```
2025-02-13 13:48:39 -06:00

37 lines
1.4 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`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;