我目前正在设计自己的数据库驱动网站.主要原因是为了学习目的,但我不会撒谎,包括少量的虚荣心!
虽然我相信到目前为止我的数据库设计还不错,但我仍然不能完全确定存储文章或其他大型文本的最佳方式.我知道大多数DBMS都有TEXT数据类型或等价的,可以容纳大量的文本.但是,将完整的文章存储为一个长字符串会导致阅读不愉快,因此需要进行格式化.
我是否将文章文本与所有HTML或BBcode标记一起存储 - 或者更简单的方法是在HTML或XML文档中创建页面并将该文件的路径存储在数据库中?
我非常喜欢将文章存储为XML文档的想法,因为我可以使用自定义标记轻松标记文章,并使用PHP的XML和XSLT函数将XML转换为HTML [或实际上,任何其他格式].它还允许作者指定何时创建行/分页符.这种方法当然需要额外的编码[我不害怕],但它确实存在使文章可搜索的问题.
我知道MySQL,例如,具有SQL语法,用于在文本字段中保存的字符串中搜索特定的术语/短语.如果我要将文本存储在单独的文件中,我如何才能使这些文章可搜索?
关于这么简单的问题,我在这里写了很多,所以我将其分解:
1:是否存在直接在数据库中存储大量格式化文本的"最佳"方式或
2:以HTML/XML/Whatever文件的形式保存到该文本的路径更好.
如果2,是否有一种优雅的方式使文本可搜索?
感谢您的时间 :)
我正在考虑编写一个程序来收集大量文本中最常用的短语.如果问题被简化为仅仅找到单词而不是将每个新单词存储在散列映射中然后在每次出现时增加计数那么简单.但是对于短语,将句子的每个排列存储为关键似乎是不可行的.
基本上,问题被缩小到找出如何从足够大的文本中提取每个可能的短语.计算短语然后按出现次数排序变得微不足道.
algorithm frequency frequency-analysis data-structures word-frequency
我有一个字符串s,我想搜索最常出现在s中的长度为X的子字符串.允许重叠子串.
例如,如果s ="aoaoa"且X = 3,则算法应找到"aoa"(在s中出现2次).
是否存在在O(n)时间内执行此操作的算法?
我如何查询Solr最常见的索引词?例如,给定每个文档的这些字段:
我希望Solr以任何格式返回给我以下输出:
谢谢.
我已经检查了类似的问题,但它在我的确切问题中没有帮助.
所以,我的表是这样的:
id age
1 30
2 36
3 30
4 52
5 52
6 30
7 36
Run Code Online (Sandbox Code Playgroud)
等等..
我需要计算年龄的频率:
age freq
30 2
36 3
52 2
Run Code Online (Sandbox Code Playgroud)
我怎么能抓住这个频率?在此之后,我将需要使用该数据,因此可能需要使用数组?谢谢!
function drawChart() {
// Create the data table.
var data = new google.visualization.DataTable();
data.addColumn('string', 'age');
data.addColumn('number', 'freq');
<?php
while($row = mysql_fetch_row($result))
{
$frequencies[$row[0]] = $frequencies[1];
echo "data.addRow(['{$row[0]}', {$row[1]}]);";
}
?>
Run Code Online (Sandbox Code Playgroud)
目标是建立一个图表