首页 > 解决方案 > Elasticsearch / Elasticpress 查找所有术语

问题描述

我一直在努力使我的搜索按预期工作,主要是因为我不知道应该进行什么样的查询来满足我的需求。

从本质上讲,我正在寻找的是,理想情况下,结果将只包括包含每个术语的帖子,但也要保持模糊性。

例如,如果我查找“215 轮胎”一词,它应该会带来如下结果:

我正在创建一个应用程序并且已经学习了太多东西,而 Elasticsearch 只是其中的一部分,但它是巨大的。我已经做了一些测试,但看起来我错过了一些东西。

根据我的理解,我希望以下查询能够正常工作:

$query = array(
  'bool' => array(
    'should' => array(
      array(
        'multi_match' => array(
        'query'     => '',
        'fields'    => $search_fields,
        'boost'     => apply_filters( 'ep_match_boost', 2, $search_fields, $args ),
        'fuzziness' => 1,
        'operator'  => 'and',
      ),
   ),
);

显然我做错了,因为我没有得到我期望的结果,例如,如果我搜索“215 轮胎”,我也得到了“215”的结果没有提到“轮胎”这个词。

我用最著名的试错法做了很多试验,但没有结果。有什么帮助吗?

标签: wordpresselasticsearchsearchelasticpress

解决方案


我相对较新ES,但是从您的问题的外观来看,您可能想要查看terms但不能使用术语text datatypes,因为如果您想要一个更强大的解决方案,那么分析器有时会更改单词,然后看看score by word position这里是有人问的问题,我认为它可能会解决您的问题。


推荐阅读