在mysql中搜索重量

时间:2017-08-03 12:27:35

标签: mysql indexing sphinx

我想在MySQL中搜索,就像我输入“engineer”一样,它也应该返回结果,如“Engine”或“Eng”或“Engineers”。 是否有可能使用MySQL或是否有其他工具可以做到这一点?

3 个答案:

答案 0 :(得分:0)

这部分可以通过使用搜索词的词干版本来涵盖。

目前不支持此功能,但可能会集成到MySQL服务器的未来版本中。任务WL#2423

可以使用像mnoGoSearch这样的MySQL插件。

答案 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

允许engineerengineers等匹配。

它不会直接应对engineer匹配eng更复杂,因为某种方式可以找到有效的“短”版本。可以使用字形来创建它们的列表,例如eng > engineer。不确定一般解决方案是否可行,因为并非所有“简短形式”都会被批准,例如,如果搜索“bodybuilder”,匹配“body”可能不会起作用,即使启动相同的非常不同的含义。