![](/img/trans.png)
[英]Unit Testing Tire (Elastic Search) - Filtering Results with Method from to_indexed_json
[英]ElasticSearch & Tire: Using Mapping and to_indexed_json
在閱讀Tyre文檔時,我的印象是您應該使用mapping
或to_indexed_json
方法,因為(我的理解是。) mapping
用於饋送to_indexed_json
。
問題是,我找到了一些同時使用兩者的教程。 為什么?
基本上,我的應用程序現在可以與to_indexed_json
一起使用,但是我不知道如何設置某些屬性的提升值(因此我開始查看映射的原因),我想知道同時使用這兩個屬性是否會產生一些沖突。
雖然mapping
和to_indexed_json
方法是相關的,但實際上它們有兩個不同的用途。
mapping
方法的目的是為索引內的文檔屬性定義映射 。 您可能希望將某些屬性定義為“ not_analyzed”,這樣就不會將其分解為令牌 ,也不會為該屬性設置特定的分析器,或者(如您提到的)索引時間提升因子。 您還可以定義多字段屬性, 日期類型的自定義格式等。
然后使用該映射 。 當Tire自動為您的模型創建索引時 。
to_indexed_json
方法的目的是為您的文檔/模型定義JSON序列化 。
默認的to_indexed_json
方法確實使用您的映射定義,僅使用在映射中定義的屬性-基於這樣的基礎,即如果您足夠定義映射 ,則默認情況下Tire只會索引已定義映射的屬性。
現在,當你想在你的模型如何,其實是序列化為JSON用於elasticsearch得緊,你剛才定義自己的to_indexed_json
方法(如README指示)。
這個自定義的MyModel#to_indexed_method
通常不關心映射定義,而是從頭開始構建JSON序列化(通過使用ActiveRecord的to_json
,使用jbuilder之類的JSON構建器,或者只是構建一個普通的舊Hash並調用Hash#to_json
)。
因此,要回答問題的最后一部分,同時使用mapping
和to_indexed_json
絕對不會產生任何沖突,實際上,在to_indexed_json
中使用高級功能實際上是必需的。
總結一下:
mapping
方法為搜索引擎定義模型的映射 to_indexed_json
方法定義搜索引擎如何查看您的文檔/模型。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.