如何匹配MySQL中单词的变体,例如,对会计的搜索应与会计,会计,会计等匹配。我在共享主机上,因此不能向levenshtein等MySQL添加任何功能。
我想类似谷歌如何匹配“的东西 会计课程 ”和“ 会计课程 ”的“搜索时, 会计师课程
”。例子。
我的服务器语言是php,如果只能在其中实现而不是在SQL中实现。
当前语句如下。
SELECT
pjs.title,
MATCH (pjs.title) AGAINST ('accountancy' IN NATURAL LANGUAGE MODE WITH QUERY EXPANSION) AS rel1,
MATCH (pjs.description) AGAINST ('accountancy' IN NATURAL LANGUAGE MODE WITH QUERY EXPANSION) AS rel2,
MATCH (
pjs.benefits,
pjs.experienceRequirements,
pjs.incentives,
pjs.qualifications,
pjs.responsibilities,
pjs.skills
) AGAINST ('accountancy' IN NATURAL LANGUAGE MODE WITH QUERY EXPANSION) AS rel3
FROM
pxl_jobsearch AS pjs
ORDER BY (rel1 * 5) + (rel2 * 1.5) + (rel3) DESC;
MySQL在全文搜索方面不是很好,您可能想使用其他引擎。我最喜欢的一个是Sphinx(http://sphinxsearch.com/),但还有其他一些。这些支持大多数都是开箱即用的。
如果您有大表并打算使用词干,则MySQL的性能可能会很差。
如果您不能使用Sphinx,请查看以下php脚本http://tartarus.org/~martin/PorterStemmer/php.txt
这样,您就可以使用词干,以及对词干单词的搜索。
问题内容: 如何在mysql中匹配整个单词? 举例来说,如果我输入“ 刘 ”,我 不 希望匹配“ 劳拉 ”或“ 劳伦斯 ”。 以下是我的工作查询,将“ lau ”与“ laura ”匹配 有解决我的主意吗? 我使用的原因是我的内容具有html标签,例如, 我不想搜索可能落在诸如的标签内的单词。 问题答案: 这行得通吗? REGEXP’[^ <] * lau [[:>:]]’ 根据文档,[[:::]
有没有办法在elasticsearch中查询一组术语的相似性(匹配分数)? 简单的例子: 数据: 查询: 后果 说明:doc1包含搜索中存在的所有标记。doc2包含搜索中存在的3个标记中的2个 所以基本上查询将返回按匹配排序的文档列表,其中匹配=文档中的标签与查询中的标签有多相似。不需要模糊性。返回%只是一个例子,返回点或其他单位就可以了。标签的数量可以不同。 我正在设计系统,因此可以以任何格式存
问题内容: 如何查询以获取字段中匹配单词的数量,特别是在MySQL中。我只需要获取“搜索字词”出现在字段值中的次数即可。 例如,值是“一二一二”,所以当我搜索单词“一”时,它应该给我3 是否有可能?因为当前我只是从数据库中提取值,并使用服务器端语言进行计数。 谢谢 问题答案: 您可以创建一个可直接在SQL中使用的函数,以便一步一步完成所有操作。 这是我在MySQL网站上找到的函数: 您应该像这样使
问题内容: 我想匹配拼写不同但发音相同的单词。像“邮件”和“男性”,“飞机”和“普通”。我们可以在Elasticsearch中进行这样的匹配吗? 问题答案: 您可以为此使用语音令牌过滤器。语音令牌过滤器是一个插件,需要单独的安装和设置。您可以使用此博客,该博客详细说明了如何设置和使用语音令牌过滤器。
问题内容: 目前,我正在执行搜索功能。可以说在我的数据库中,我有以下数据: 关键字1 关键字2 关键字3 关键的东西 钥匙 然后用户输入:“ Key”作为要搜索的关键字。这是我当前的查询: 基本上,我有2个问题: 如何按相似性排序(排序)。从上面的示例中,我希望“ Key”作为我的第一个结果。我当前的结果是:Keyword1,Keyword2,Keyword3,Keysomething和Key 我