0

我有一个 Rails 应用程序,其term => definitions 存储在 Neo4j 上的节点中,我希望我的用户使用弹性搜索进行搜索。通过使用,我们发现他们更常希望在搜索描述之前先找到术语名称。但是我很难找到首先返回某个字段的结果而不是其他字段的函数。

[
    {
      "id": 1,
      "data": {
        "name": "Foo",
        "description": "Something super awesome."
      }
    },
    {
      "id": 2,
      "data": {
        "name": "Bar",
        "description": "Something that depends on Foo"
      }
    }
]


search for "Foo"

因为这两个术语都包含Foo名称或描述中的单词,所以我的应用程序按字母顺序返回,并且因为Bar按字母顺序排列Foo,所以Bar首先出现。当我的用户搜索在许多其他术语中使用的常用术语时,这会变得非常累人。

如何首先从名称字段返回结果,然后是描述中的次要结果?

我有一种感觉,这与 Neo4j 的关系比弹性搜索更重要

4

1 回答 1

0

它可以通过将术语和字段频率值添加到您的类型映射。http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/scoring-theory.html name": { "type": "string", "store": true, "norms": { "enabled ": false }, "index_options": "docs" }

让我知道任何疑问。

于 2015-02-06T08:56:56.747 回答