0

我需要实现一个搜索引擎。所以我有一个字典,它是一个哈希表,它包含单词。另外我有一些文本,我需要查看所有文本并将文本编号和文本中每个单词的位置放入发布文件。

因此,每次我出现某个单词并且该单词已经存在于发布文件中时,我需要添加该单词的另一个出现,这意味着更新该单词在发布文件中的那一行。但是因为发布文件看起来像这样:

word1: 1(2,4,5) 4(66,42,21)
word2: 1(3,66) 6(12,19)

我不能在第 1 行写一些新的东西,因为据我所知这会影响第 2 行。

所以问题是我该怎么做?我可以以某种方式而不是仅仅将字符串写入文件,而是编写一些数据结构吗?像哈希表?因此,对于每个单词,发布文件中都会有一个哈希表,如果我看到该单词已经存在于发布文件中,我将读取它的哈希表,更新它并将其重写到文件中。

还是有更好的东西?

提前致谢,

格雷格

4

1 回答 1

0

您是否考虑过使用 XML 来执行此操作?一个简单的结构,如:

<searchkeys>
   <key name="word1">
      <text id="1">2,4,5</text>
      <text id="4">66,42,21</text>
   </key>
   <key name="word2">
      <text id="1">3,66</text>
      <text id="6">12,19</text>
   </key>
</searchkeys>

您可以使用XmlDocumentXmlReader 、 XmlWriter等类来操作文件并从那里获得更好的体验。

如果这将包含大量数据,您可能会考虑使用数据库来执行此操作(Access、MS SQL(Express 或 Standard)、SqlLite、MySql 等)。

于 2009-12-19T00:21:33.963 回答