如何将IMDB quotes.list转储文件导入到mysql表中,使每行包含散列之间的文本(“QUOTE”)?
我想从我下载的软件中制作一个语言学习工具。我想要实现的是,用户将输入一个他希望在如何将IMDB quotes.list转储文件导入到mysql表中,使每行包含散列之间的文本(“QUOTE”)?,mysql,Mysql,我想从我下载的软件中制作一个语言学习工具。我想要实现的是,用户将输入一个他希望在句子中查看其用法的单词,然后php查询的输出将列出包含关键字的句子。这对语言学习者很有启发性 为此,我想将所有文本导入mysql数据库,然后使用PHP访问它。我确实这样做了,但效果不好,语句填充不正确,查询时间太长。 quotes.list的格式如下所示 # "Andromeda" (2000) {Pitiless as the Sun (#2.4)} Tyr Anasazi: Am I mistaken str
句子
中查看其用法的单词,然后php查询的输出将列出包含关键字的句子
。这对语言学习者很有启发性
为此,我想将所有文本导入mysql数据库,然后使用PHP访问它。我确实这样做了,但效果不好,语句
填充不正确,查询时间太长。
quotes.list的格式如下所示
# "Andromeda" (2000) {Pitiless as the Sun (#2.4)}
Tyr Anasazi: Am I mistaken
strangers unlimited access to this ship?
Captain Dylan Hunt: Why yes
closely and see what they do with it. There's something not quite
trust worthy about them
Tyr Anasazi: You occassion bouts of deviousness never fail to
surprise me
# "Andromeda" (2000) {Point of the Spear (#3.16)}
Tyr Anasazi: Well even crippled I would much prefer to assume the
offensive than instruct the crew to make peace with their various
and sundry dieties!
如何将散列之间的文本导入mysql表中的每一行?
你会发布任何其他的想法来缓解我的项目吗
编辑:我使用perl分句器脚本“句子边界.pl”将文本对齐成句子
现在我想不出创建表并将“对齐文本”加载到表中的最佳方法。我尝试了一些方法,例如:
CREATE TABLE text
(
body TEXT
)ENGINE = MYISAM
当我加载时,使用
LOAD DATA LOCAL INFILE '/home/user/Desktop/quotes' INTO TABLE text;
并使用
SELECT * FROM `text` WHERE MATCH(body) AGAINST('freedom' IN BOOLEAN MODE)
查询时间大约需要两分钟
我尝试了下面的索引表
,但无法将文本加载到其中,正文字段充满了NULL
CREATE TABLE IF NOT EXISTS text ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `body` VARCHAR(140) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=5000000 DEFAULT CHARSET=utf8;
EDIT2:
我设法将文本加载到body字段中,但查询时间仍然太长
LOAD DATA LOCAL INFILE '/home/user/Desktop/quotes' INTO TABLE text (body);
你能帮我一下吗?虽然我的问题的主要思想有点离题,但我终于在quotes表上做了一个超级快速的句子列表器mysql查询。完成上述步骤后,我将全文模式应用于表:
ALTER TABLE text ADD FULLTEXT(body);
请注意,它必须在填充表后应用,否则导入时间会变长
我在本地主机中编写了一个php文件,我正在使用它访问数据库并列出搜索到的句子,用不到2秒钟的时间列出大约2500个句子