Php Sphinx(或其他第三方)搜索引擎是否适用于我的情况,还是我应该创建自己的搜索引擎?

Php Sphinx(或其他第三方)搜索引擎是否适用于我的情况,还是我应该创建自己的搜索引擎?,php,mysql,search,sphinx,Php,Mysql,Search,Sphinx,我正在我的网站上创建分类广告的搜索功能。 以下是我需要满足的一些标准: 当搜索“bmw 520”时,仅返回这两个词完全按照此顺序出现的匹配项。不匹配仅适用于“bmw”或“520” 搜索“bmw 330ci”结果时,将返回上述结果,但是,无论是否使用ci扩展名。正如大家所知,汽车中有很多扩展(i、ci、si、fi等) 我希望“减号”能够“排除”所有包含符号后单词的返回,例如:“bmw-330”将返回所有“bmw”结果,而不包含“330”结果。(a不代替减号也可以) 所有特殊字符重音(如“e”)都

我正在我的网站上创建分类广告的搜索功能。 以下是我需要满足的一些标准:

  • 当搜索“bmw 520”时,仅返回这两个词完全按照此顺序出现的匹配项。不匹配仅适用于“bmw”或“520”

  • 搜索“bmw 330ci”结果时,将返回上述结果,但是,无论是否使用ci扩展名。正如大家所知,汽车中有很多扩展(i、ci、si、fi等)

  • 我希望“减号”能够“排除”所有包含符号后单词的返回,例如:“bmw-330”将返回所有“bmw”结果,而不包含“330”结果。(a不代替减号也可以)

  • 所有特殊字符重音(如“e”)都转换为其简单值,在本例中为“e”

  • 搜索字符串中要完全忽略的单词列表

我需要Sphinx还是应该把它写在php文件中

你建议我做什么


谢谢

我认为斯芬克斯符合你的所有标准。

我认为斯芬克斯符合你的所有标准。

我认为斯芬克斯非常符合你想要做的事情,但有些事情不会自动发生

  • 要精确匹配两个单词,您需要使用短语匹配模式,或者在使用扩展匹配模式时将单词分组在双引号中

  • 这是一个棘手的问题-除非您指定特定的异常,否则我不认为您可以将330ci索引为“330 ci”和“330ci”

  • 只要您使用的是布尔或扩展匹配模式,那么减号就可以按照您的意愿工作

  • “特殊”字符可以转换为标准ASCII,但默认情况下不会发生这种情况。你需要准备一下。这篇博文旨在思考Sphinx(Sphinx的Ruby插件),但设置值只是直接传递给Sphinx

  • 如果查询中至少有一个单词(即:“-foo”对于Sphinx将失败,但“foo-bar”可以),则只能在每个查询中忽略特定单词。值得注意的是,你可以选择


我认为狮身人面像非常适合你想要做的事情,但有些事情不会自动发生

  • 要精确匹配两个单词,您需要使用短语匹配模式,或者在使用扩展匹配模式时将单词分组在双引号中

  • 这是一个棘手的问题-除非您指定特定的异常,否则我不认为您可以将330ci索引为“330 ci”和“330ci”

  • 只要您使用的是布尔或扩展匹配模式,那么减号就可以按照您的意愿工作

  • “特殊”字符可以转换为标准ASCII,但默认情况下不会发生这种情况。你需要准备一下。这篇博文旨在思考Sphinx(Sphinx的Ruby插件),但设置值只是直接传递给Sphinx

  • 如果查询中至少有一个单词(即:“-foo”对于Sphinx将失败,但“foo-bar”可以),则只能在每个查询中忽略特定单词。值得注意的是,你可以选择


Sphinx可以使用min_prefix_len=2将330ci索引为两个或更多单词。但是它太贵了:)Sphinx可以使用min_前缀_len=2将330ci索引为两个或更多的单词。但是太贵了:)