2010-11-11 35 views
0

我有一个HTML网站。在该网站中有大约100个html文件可用。我想开发搜索引擎。如果用户输入任何单词并输入搜索,那么我想用关键字显示相关内容。没有使用任何服务器端脚本是不可能的?有可能通过使用jQuery或JavaScript实现?请让我知道,如果你有任何想法!如何使用脚本语言和使用jquery进行搜索?

高级谢谢。

回答

5

可能吗?是。您可以通过AJAX下载所有文件,将其内容保存在一个字符串数组中,然后搜索该数组。

然而,表现将是可怕的。如果您需要全文搜索,那么对于任何体面的表现,您都需要一个数据库和一个特殊的全文搜索引擎。

+0

感谢您的回复。我会尝试通过使用ajax来实现.. – Arung 2010-11-11 14:19:31

+3

@Mayilarun - 我强烈建议不要这样做。结果几乎无法使用。 – 2010-11-11 14:22:26

+0

我打算将内容保存在一个JavaScript文件中。然后在每一页我会显示来自JavaScript的内容。当用户按下搜索按钮时,我会隐藏内容div并显示搜索结果。使用jquery函数我们可以实现这个想法。我不确定这是否会给出最好的结果。请给出关于这个计划的反馈.. – Arung 2010-11-11 14:35:30

1

很简单 - 没有。

客户端JavaScript在客户端的浏览器中运行。客户无法了解域中文档的内容。如果你想进行搜索,你需要在服务器端进行搜索,然后将适当的HTML返回给客户端。

从技术上来说,这个客户端的唯一方法是向客户端发送关于所有文档的所有数据,然后让他们通过一些JS函数执行搜索。而且这样做效率低得可笑,因此当它更简单,更轻便和更高效地维护服务器上的搜索数据库(可能通过一些很好打包的第三方库)并且使用它时,没有任何理由让它们这样做。

2

3手段:

  1. 阿贾克斯索引请求系列:速度很慢,不建议
  2. 使用DB来存储关键术语/页refernces并进行全文搜索
  3. 利用现成的功能,如由谷歌提供的
+0

对于google的建议+1。 – Paddy 2010-11-11 14:34:21

0

如果您的网站允许搜索引擎索引,然后fcalderan的做法绝对是最简单的方法。

如果不是,可以生成一个文本文件作为HTML文件的索引。这可能会基本成功,但这是可能的。您可以使用类似Toby Segaran's book中的关键字来构建JSON文本文件。然后,使用jQuery加载文本文件并查找关键字的实例,唯一生成的文件名并显示结果。

2

这可以工作的唯一方法是,如果你有一个页面上的所有页面的列表,你正在从中搜索。所以你可以这样做:

pages = new Array("page1.htm","page2.htm"...) 

等等。但问题是,搜索结果,浏览器将需要为每一个页面做一个GET请求:

for (var i in pages) 
    $.get(pages[i], function (result) { searchThisPage(result) }); 

做的是100倍就意味着漫长的等待用户。我能想到的另一种方法是在一个阵列服务的所有内容:

pages = { 
    "index" : "Some content for the index", 
    "second_page" : "Some content for the second page", 
    etc... 
} 

然后,每个页面可以参考这一个脚本来获取所有内容,包括它自己的内容部分为自己的内容,使用其余的搜索。如果你有大量的数据,当用户第一次到达你的网站时,这将是一个很大的负载。

我能想到的最后一个选项是使用谷歌搜索API:http://code.google.com/apis/customsearch/v1/overview.html