我想在MySQL中搜索,就像我输入“engineer”一样,它也应该返回结果,如“Engine”或“Eng”或“Engineers”。 是否有可能使用MySQL或是否有其他工具可以做到这一点?
答案 0 :(得分:0)
答案 1 :(得分:0)
是。您可以以相反的方式使用MySQL LIKE运算符。 这里columnName是您要搜索的列的名称
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link href="https://fonts.googleapis.com/css?family=Josefin+Sans" rel="stylesheet">
<div class="container ">
<h1 id="title" class="text-center"><strong>WikiSearch</strong></h1>
<div id="input" class="input-group col-lg-8 offset-lg-2 col-md-8 offset-md-2 col-xs-12">
<input id="search-box" type="text" class="form-control" placeholder="Search Wikipidia Pages!..." />
<button id="search" class="btn btn-primary">Search</button>
</div>
<div id="results" class="col-lg-8 offset-lg-2">
</div>
</div>
如果您不想忽略CASE,可以使用查询到OR。如果要将输入键入为ENGINEER,则可以像使用LOWER一样使用UPPER。
答案 2 :(得分:0)
可以使用SPhinx(你已经为sphinx标记了这个问题)
形态处理器包括一个词干分析器, http://sphinxsearch.com/docs/current.html#conf-morphology
允许engineer
与engineers
等匹配。
它不会直接应对engineer
匹配eng
更复杂,因为某种方式可以找到有效的“短”版本。可以使用字形来创建它们的列表,例如eng > engineer
。不确定一般解决方案是否可行,因为并非所有“简短形式”都会被批准,例如,如果搜索“bodybuilder”,匹配“body”可能不会起作用,即使启动相同的非常不同的含义。