我想知道Sphinx引擎是否适用于任何分隔符(如普通MySQL中的逗号和句点)。我的问题来自于完全没有使用它们的冲动,但是为了逃避它们,或者至少在使用FULLTEXT搜索执行MATCH操作时它们没有进入冲突,因为我在MySQL中处理它们时遇到问题默认情况下我我们宁愿不被任何其他角色强行取代那些分隔符,以提供一系列良好的结果。
很抱歉,如果我说的是愚蠢的话,但我没有使用Sphinx或其他补充(?)搜索引擎的经验。
举个例子,如果我用
进行搜索"Passat 2.0 TDI"
默认情况下,MySQL会在这种情况下将句点标识为分隔符,并且由于“2”和“0”太短而不能在默认情况下被视为单词,因此结果会有些混乱。
使用Sphinx(或其他搜索引擎)是否容易处理?我愿意接受建议。
这是一个大型项目,可能有超过500,000条记录(根本不是微不足道的)。
干杯!
答案 0 :(得分:1)
通过指定特定charset table的sphinx index,您可以有效地控制哪些字符是分隔符。
如果从charset表中排除某个字符,它实际上会充当分隔符。如果在charset表中指定它(甚至空格为U + 0020),它将不再作为分隔符,并且将成为令牌字符串的一部分。
每个索引(使用一个或多个sphinx data sources)都可以使用不同的charset表来提高灵活性。
注意:如果您想要单个字符,您可以指定每个sphinx索引的min_word_len。
答案 1 :(得分:0)
这可能是the documentation的最佳部分。由于狮身人面像是一个全文引擎,它主要是关于它如何处理短语以及如何传递它们的高度可调。