突出显示不一致性(轮胎/弹性搜索)

时间:2013-06-18 14:57:05

标签: ruby-on-rails ruby ruby-on-rails-3 elasticsearch tire

我正在尝试使用Tire(ElasticSearch)进行突出显示,但我遇到了一些不一致的问题,我可能做错了。我遇到的问题是它并不总是突出我所寻找的术语的占有欲。这是设置:

索引:

indexes :thesis,              type: 'string',   boost:  2.0,            analyzer: 'snowball',  as: 'index_clean_thesis'
# the 'index_clean_thesis' removes some formatting characters as \t, \r, \n.

查询:

query { match :thesis, params[:text] } 

我正在查询“谷歌”一词。

现在,我的ElasticSearch索引中有两个测试条目(一个具有我要索引的条目之一的合法文本,而其中一个有我编写的一些文本用于测试目的)。在大文中,我只得到了14个实际存在的“Google”的一个实例。在测试文本上,我得到了所有这些。

以下是大文中的一个实例,其中没有突出显示“Google的”

Imminent changes to Google’s policies could dramatically lower the

以下是大文章中唯一突出显示“Google's”的实例

I want to ask about Google's pending Toolbar change.

以下是突出显示按预期工作的测试文本

Google's bla is blabla APPLE google is GOOGLE+ blabla facebook bla is yes yes no Google's ononononono tyeyeeyeyye ete pw iepq kw iqpe iwpq google pqiwop qoweo qpwoe qdpw adpw google's ksowoskwo google+

我还通过ElasticSearch上的直接 curl 查询尝试了查询,但我得到了相同的行为。这是我试过的 curl 查询:

curl -XGET http://localhost:9200/postings/_search -d '{
  "query": {
    "match": {
      "thesis": "Google"
    }
  },
  "highlight": {
    "fields": {
      "thesis": {
        "fragment_size": 40,
        "number_of_fragments": 300
      }
    }
  }
}'

请让我知道我做错了什么导致这种奇怪的行为。

1 个答案:

答案 0 :(得分:0)

好吧,没关系,我刚刚意识到问题是什么 - 它有点荒谬但是我很感激StackOverflow代码文本编辑器哈哈:它让我意识到在它没有突出显示的例子中,有实际上一个不同的撇号,可能ElasticSearch并没有正确地阻止它。

对于这个愚蠢的帖子感到抱歉,但也许有人会发现它在将来很有用......我必须指明数据是从表单输入的,谁知道这个奇怪的撇号是如何进入的。我要过滤它们在对象保存并输入右撇号。

这是一个非常难以实现的问题,因为我的文本编辑器似乎没有显示出这两个撇号之间的巨大差异......

谢谢,
维拉德