首先在弹性搜索中返回某些字段

时间:2015-02-05 21:38:14

标签: ruby-on-rails elasticsearch neo4j neo4j.rb

我有一个Rails应用程序,其中term => definition存储在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,因此我的应用会按字母顺序返回,并且由于BarFoo之前按字母顺序排列,所以Bar首先出现。当我的用户搜索许多其他术语中使用的常用术语时,这会非常累人。

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

我觉得这与neo4j有关,而不是弹性搜索

1 个答案:

答案 0 :(得分:0)

可以通过将术语和字段频率值添加到类型映射中来实现。 http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/scoring-theory.html name":{ "输入":" string", "存储":是的, "规范":{ "启用":false }, " index_options":" docs" }

让我知道任何疑问。