首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

用sphinx给PHP加个给力的搜索功能

最近工作上需要实现搜索功能,尝试了几种方案。虽然最终线上部署的还是最low的方案,但是中间的过程还是比较有意思的。业务上根据关键字查找内容。关键字的出处多来源于标题,文章描述等。...生成关键字表,使用关键字表进行查询 对数据内容的标题和内容进行分词,把各个分词结果关联该内容。查询的时候根据查询关键字进行匹配。因为不是模糊搜索,所以可以使用数据库的索引,加快搜索速度。...需要在数据插入,更新的同时更新关键词数据。同时查询之前也要对查询内容进行分词操作。查询的准确度依赖于分词结果。...使用sphinx作为搜索引擎 sphinx支持全文搜索,所以在sphinx中查询到关键字对应内容id之后再通过数据库获取内容的全部数据。...生成方式: indexer --buildstops dict.txt 100000 --buildfreqs test1 -c /path/to/sphinx.conf 以下是在本地实验的一些数据,生成全量索引的结果

1K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    返回结果的 HTTP 状态码

    返回结果的 HTTP 状态码.png 返回结果的 HTTP 状态码 状态码的职责 当客户端向服务器端发送请求时,描述返回的请求结果 状态码的大致分类 1XX 信息性状态码 · 接收的请求正在处理 2XX...204 No Content 该状态码代表服务器接收的请求已成功处理,但在返回的响应报文中不含实体的主体部分 206 Partial Content 该状态码表示客户端进行了范围请求,而服务器成功执行了这部分的...该状态码表示请求的资源已被分配了新的 URI,以后应使用资源现在所指的 URI。 302 Found 临时性重定向。...该状态码表示请求的资源已被分配了新的 URI,希望用户(本次)能使用新的 URI 访问 303 See Other 该状态码表示由于请求对应的资源存在着另一个 URI,应使用 GET 方法定向获取请求的资源...HTTP 认证(BASIC 认证、DIGEST 认证)的认证信息 403 Forbidden 该状态码表明对请求资源的访问被服务器拒绝了 404 Not Found 该状态码表明服务器上无法找到请求的资源

    2.4K00

    使用PHP+Sphinx建立高效的站内搜索引擎

    为什么要使用Sphinx 假设你现在运营着一个论坛,论坛数据已经超过100W,很多用户都反映论坛搜索的速度非常慢,那么这时你就可以考虑使用Sphinx了(当然其他的全文检索程序或方法也行)。...Sphinx是什么 Sphinx由俄罗斯人Andrew Aksyonoff 开发的高性能全文搜索软件包,在GPL与商业协议双许可协议下发行。...Sphinx的特性 l  高速索引 (在新款CPU上,近10 MB/秒); l  高速搜索 (2-4G的文本量中平均查询速度不到0.1秒); l  高可用性 (单CPU上最大可支持100 GB的文本,100M...守护进程配置 listen 监听端口 max_matches最大匹配数,也就是查找的数据再多也只返回这里设置的1000条 pid_file pid文件路径 log全文检索日志 query_log查询日志...提供的API去取得我们想要的数据,还必须以查询的结果为依据,再次查询MySQL从而得到我们想要的数据。

    2.3K10

    Python 工匠:让函数返回结果的技巧

    如同大部分故事都会有结局,绝大多数函数也都是以返回结果作为结束。函数返回结果的手法,决定了调用它时的体验。所以,了解如何优雅的让函数返回结果,是编写好函数的必备知识。...Python 的函数返回方式 Python 函数通过调用 return 语句来返回结果。...抛出异常,而不是返回结果与错误 我在前面提过,Python 里的函数可以返回多个值。基于这个能力,我们可以编写一类特殊的函数:同时返回结果与错误信息的函数。...对这类函数来说,使用 None 作为“没结果”时的返回值也是合理的。...分别用这两个函数来举例: re.search():从函数名来看, search,代表着从目标字符串里去搜索匹配结果,而搜索行为,一向是可能有也可能没有结果的,所以该函数适合返回 None create_user_from_name

    1.8K10

    Python 工匠:让函数返回结果的技巧

    函数即是重复代码的克星,也是对抗代码复杂度的最佳武器。如同大部分故事都会有结局,绝大多数函数也都是以返回结果作为结束。函数返回结果的手法,决定了调用它时的体验。...所以,了解如何优雅的让函数返回结果,是编写好函数的必备知识。Python 的函数返回方式Python 函数通过调用 return 语句来返回结果。...抛出异常,而不是返回结果与错误我在前面提过,Python 里的函数可以返回多个值。基于这个能力,我们可以编写一类特殊的函数:同时返回结果与错误信息的函数。...分别用这两个函数来举例:re.search():从函数名来看, search,代表着从目标字符串里去搜索匹配结果,而搜索行为,一向是可能有也可能没有结果的,所以该函数适合返回 Nonecreate_user_from_name...使用生成器的函数通常更简洁、也更具通用性。图片我在 系列第 4 篇文章“容器的门道” 里详细分析过这个模式,更多细节可以访问文章,搜索 “写扩展性更好的代码” 查看。7.

    4.5K31

    返回执行结果的任务队列:ExecutorCompletionService

    有时候我们需要展示一些内容,如果等所有内容都加载完毕再展示这样反而会降低用户体验; 因为如果消耗时间长那么用户需要瞪着空白的页面,反而会失去兴趣; 所以我们希望加载一点资源显示一点,对于那么超过我们容忍范围还未加载完毕的资源我们应该...不再去加载,放弃本次加载或者显示一些默认结果 模拟: final Random r = new Random(); // 创建一个固定大小的线程池 ExecutorService...es = Executors.newFixedThreadPool(10); // 将所有处理结果提交到一个固定大小的队列(可不指定,默认创建一个无界队列) ExecutorCompletionService...Thread.sleep(l); return Thread.currentThread().getName() + "|" + l; } }); try { //获得返回结果...e.printStackTrace(); } catch (TimeoutException e) { // 超时,放弃这个结果

    1.3K90

    Python 工匠:让函数返回结果的技巧

    函数返回结果的手法,决定了调用它时的体验。所以,了解如何优雅的让函数返回结果,是编写好函数的必备知识。 Python 函数通过调用 return 语句来返回结果。...抛出异常,而不是返回结果与错误 我在前面提过,Python 里的函数可以返回多个值。基于这个能力,我们可以编写一类特殊的函数:同时返回结果与错误信息的函数。...对这类函数来说,使用 None 作为“没结果”时的返回值也是合理的。...分别用这两个函数来举例: re.search():从函数名来看, search,代表着从目标字符串里去搜索匹配结果,而搜索行为,一向是可能有也可能没有结果的,所以该函数适合返回 None create_user_from_name...处理 item 后直接使用 yield 返回 yield item 我在 系列第 4 篇文章“容器的门道” 里详细分析过这个模式,更多细节可以访问文章,搜索 “写扩展性更好的代码” 查看

    2.2K30

    Python 工匠:让函数返回结果的技巧

    ” 如同大部分故事都会有结局,绝大多数函数也都是以返回结果作为结束。函数返回结果的手法,决定了调用它时的体验。所以,了解如何优雅的让函数返回结果,是编写好函数的必备知识。...Python 的函数返回方式 Python 函数通过调用 return 语句来返回结果。...抛出异常,而不是返回结果与错误 我在前面提过,Python 里的函数可以返回多个值。基于这个能力,我们可以编写一类特殊的函数:同时返回结果与错误信息的函数。...分别用这两个函数来举例: re.search():从函数名来看, search,代表着从目标字符串里去搜索匹配结果,而搜索行为,一向是可能有也可能没有结果的,所以该函数适合返回 None create_user_from_name...处理 item 后直接使用 yield 返回 yield item 我在 系列第 4 篇文章“容器的门道” 里详细分析过这个模式,更多细节可以访问文章,搜索 “写扩展性更好的代码” 查看。

    2.2K40

    AI搜索的查询结果都来自哪里?

    当我们使用AI搜索平台查找信息时,你是否曾好奇过,那些精准的搜索结果究竟是从哪里来的?是不是觉得AI就像个无所不知的智者,总能给出你想要的答案?...第一个是文心一言的搜索结果,其中显示参考4条信息源,主要来自新浪财经、简书、百家号和CSDN等。第二个是天工AI的搜索结果,其中显示参考知乎专栏、网易、搜狐等信息源。...第三个是KIMI的搜索结果,参考来源比较多,28条,信息源比较综合。第四个是豆包的搜索结果,其中显示搜索来源来自网易、头条号、格隆汇等。...同时,平台还会根据用户的搜索习惯和兴趣偏好,提供个性化的搜索结果推荐,帮助用户更高效地找到所需信息。...AI搜索平台通过深度整合这些平台上的用户生成内容,为用户提供了更加丰富、个性化和多样化的搜索结果。

    42510

    【5min+】美化API,包装AspNetCore的返回结果

    通过本篇文章您将Get: 将API返回的数据自动包装为所需要的格式 理解AspNetCore中Action返回结果的一系列处理过程 本文的演示代码请点击:Github Link 时长为大约有十分钟,内容丰富...当然,不是所有的情况下,结果都是返回ObjectResult哦,就如同下面这些情况: 当我们显式返回一个IActionResult的时候 当Action的返回类型为Void,Task等没有返回结果的时候...但是,对于大部分的情况,我们都是返回的基础对象,所以都会被包装成为ObjectResult。 那么,当返回结果成为了IActionResult之后呢? 是怎么样处理成Http的返回结果的呢?...执行ExecuteAsync方法将结果写入到Http的返回结果中。...这样我们就从一个Action返回结果到了我们从POSTMan中看到的结果。 返回结果包装 在有了上面的知识基础之后,我们就可以考虑怎么样来实现将返回的结果进行自动包装。

    1.3K30

    搜索引擎的个性化搜索:为何搜索结果因人而异

    前言 搜索引擎已成为我们获取信息的重要工具,而当我们输入相同的关键词进行搜索时,为何有时会发现搜索结果却不尽相同?...本文将揭示搜索引擎的个性化搜索机制,探讨影响搜索结果差异的因素,并对用户隐私与个性化搜索之间的平衡进行讨论。...搜索引擎的工作原理 搜索引擎通过自动抓取和索引互联网上的网页,以便用户能够在其数据库中搜索相关内容。当用户输入关键词后,搜索引擎会根据算法对索引中的网页进行匹配,并按照一定的排序规则返回搜索结果。...这意味着即使输入相同的关键词,不同用户也可能得到不同的搜索结果。...影响搜索结果的因素 个性化搜索结果的差异可以归因于以下因素: 搜索历史: 搜索引擎会考虑用户过去的搜索记录,为其提供与兴趣相关的结果。

    37420
    领券