擅长:python、mysql、java
<p>根据您搜索整句话的评论:</p>
<p><strong>建立前缀索引。</strong></p>
<p>对文件进行排序。接下来,处理一次文件。计算将搜索减少到1000个句子所需的前缀长度。也就是说,在一个给定句子的大约1000个句子中,你需要多少个前缀字符。在</p>
<p>例如:“The”可能是英语中常见的起始词。但是“快速”可能已经足够接近了,因为“q”是低频,对于任何像“快速棕色狐狸”这样的东西。。。等等。”</p>
<p>这样做的一种方法是将所有的前缀(例如,40)放入一个集合.计数器. 找到每个长度的最大计数,然后选择您的长度,使max<;=1000。可能还有其他方法。;—)</p>
<p>现在,再次处理该文件。构建一个单独的索引文件,由前缀长度(在文件头中)、前缀和偏移量组成。所有以前缀K开头的句子都以偏移量V开头。因为文件已排序,索引也将被排序。在</p>
<p>您的程序可以将索引读入内存,打开文件,并开始处理搜索。对于每次搜索,切掉前缀,在索引中查找,查找文件偏移量,然后扫描匹配项。在</p>