<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>Loyea (tomatopotato)</title>
    <link>https://ruby-china.org/Loyea</link>
    <description></description>
    <language>en-us</language>
    <item>
      <title>[求助] ElasticSearch 无法搜索</title>
      <description>&lt;p&gt;问题已解决，看 5 楼&lt;/p&gt;

&lt;p&gt;最近要给项目搜索添加分词功能，然后上了 ES，使用 ik 插件。本地试了 ik 插件 readme 的 demo，也试过网上其他 demo，都能顺利导入索引并分词搜索。但是自己的项目导入索引成功，但是搜索怎么都 0 命中。&lt;/p&gt;

&lt;p&gt;我看了 ik 的官网 readme 中的 demo，我 get 单个数据返回的是这样的&lt;/p&gt;

&lt;p&gt;get 请求： &lt;code&gt;curl -XGET http://localhost:9200/index/fulltext/1&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;get 返回：&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{"_index":"index","_type":"fulltext","_id":"1","_version":1,"found":true,"_source":
{"content":"美国留给伊拉克的是个烂摊子吗"}
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;然后我试了下自己的项目，返回是这样的：&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{
  "_index" : "app",
  "_type" : "food",
  "_id" : "1",
  "_version" : 1,
  "found" : true,
  "_source" : {
    "food" : {
      "appraise" : "小麦富含淀粉、蛋白质、脂肪、矿物质、钙、铁、硫胺素、核黄素、烟酸、维生素A及维生素C等，是主要的主食来源，适宜减肥期间食用。"
    }
  }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;试了下别的 demo，在 Rails Console 里面调用 Model.first.as_indexed_json 返回的一般是这样的：&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{"content":"美国留给伊拉克的是个烂摊子吗"}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;但是我这个项目返回时这样的：&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{"food"=&amp;gt;{"appraise"=&amp;gt;"小麦富含淀粉、蛋白质、脂肪、矿物质、钙、铁、硫胺素、核黄素、烟酸、维生素A及维生素C等，是主要的主食来源，适宜减肥期间食用。"}} 
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;不知道为什么外面还有层&lt;code&gt;food&lt;/code&gt;。。。。&lt;strong&gt;尝试手动向 ES 加入一个没有 food 的索引能够搜索成功&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;在我的 Food Model 里面 as_indexed_json 方法是这样的：&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;def as_indexed_json(options = nil)
    as_json(
        only: [:appraise]
    )
  end
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;跟别的 demo 也一样，但是结果不知道为什么会多一个 Food 出来&lt;/p&gt;</description>
      <author>Loyea</author>
      <pubDate>Tue, 09 Jan 2018 09:06:37 +0800</pubDate>
      <link>https://ruby-china.org/topics/34854</link>
      <guid>https://ruby-china.org/topics/34854</guid>
    </item>
  </channel>
</rss>
