gpt4 book ai didi

PHP 单词索引,性能和合理的结果

转载 作者:可可西里 更新时间:2023-11-01 07:57:36 26 4
gpt4 key购买 nike

我目前正在为搜索功能开发索引器。索引器将处理来自“字段”的数据。字段看起来像:

  Field_id   Field_type   Field_name   Field_Data
- 101 text Name Intel i7
- 102 integer Cores 4 physical, 4 virtual
- 103 select Vendor Intel
- 104 multitext Description The i7 is intel's next gen range of cpus.

索引器将生成以下结果/索引:

  Keyword    Occurrences
- intel 101, 103, 104
- i7 101, 104
- physical 102
- virtual 102
- next 104
- gen 104
- range 104
- cpus 104 (*)
- cpu 104 (*)

所以它看起来有点不错,但是,有一些问题我想解决:

  • 过滤掉常用词(您可能已经注意到,列表中缺少“the”、“is”、“of”和“intel's”)
  • 关于“cpus”(复数与单数),最好是同时使用特定类型(单数或复数)还是完全使用(即“cpus”与“cpu”不同)?
  • 继续上一项,我如何确定复数(不同的口味:test=>tests fish=>fish and leaf=>leaves)
  • 我目前正在使用 MySql,我非常担心性能问题;我们有 500 多个类别,我们甚至没有启动网站
  • 假设我想使用搜索词“vendor:intel”,其中 vendor 指定字段名称 (field_name),您认为这会对 sql server 产生巨大影响吗?
  • 搜索限制;我一点也不喜欢这样,但这是有可能的,如果您知道任何变通办法,请说出来!
  • 还有其他问题我可能忘记了,如果您发现任何问题,欢迎您对我大喊大叫 ;-)
  • 我不需要搜索引擎抓取链接,事实上,我特别希望它不抓取链接

(顺便说一下,我对英特尔没有偏见,我只是碰巧拥有一台基于 i7 的电脑 ;-))

最佳答案

从这里获取停用词(非关键字)列表,这家伙甚至为您在 php 中格式化了它们。 http://armandbrahaj.blog.al/2009/04/14/list-of-english-stop-words/

然后只需对要索引的字符串执行 preg_replace。

我过去所做的是使用正则表达式删除“s”、“ed”等后缀,并在搜索字符串上使用相同的正则表达式。虽然这并不理想。这是一个只有 200 页的基本网站。

如果您担心性能,您可能需要考虑使用 Lucine (solr) 等搜索引擎而不是数据库。这将使索引更容易。您不想在这里重新发明轮子。

关于PHP 单词索引,性能和合理的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3315910/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com