私はPlayとElasticSearchの両方の初心者であり、POC用にそれらを構成しようとしています。CRUDモジュール(Play 1.2.4)を使用して、Bookというモデルを作成しました
@ElasticSearchable
@Entity
public class Book extends Model{
@Required
public String title ;
@Required
public String author ;
@Required
public String publisher ;
public String binding ;
@Required
public double price ;
public double discount ;
@Required
@MaxLength(4)
public String releasedYear ;
@Required
public boolean inStock ;
public String language ;
public String deliveryTime ;
}
そして、インメモリデータベースH2にいくつかのレコードを作成し、それらのレコードをelasticsearchノードでインデックス付けしました(ローカルマシンを使用してESを実行しています)
ES管理インターフェース(PlayでESモジュールを使用するときにデフォルトで提供される)を使用して検索しようとすると、奇妙な問題が発生します。
「初心者向けJava」というタイトルの本が1冊あり、ES-Adminインターフェイスからフィールドタイトルに対して用語クエリを実行しようとしています。
{"query" : {"term" : { "title" : "Java for beginners" }}}
そしてそれは私を返します
{
took: 3
timed_out: false
_shards: {
total: 5
successful: 5
failed: 0
}
hits: {
total: 0
max_score: null
hits: [ ]
}
}
これは本質的に、一致するレコードがないことを意味します
不思議なことに、クエリをに変更すると
{"query" : {"term" : { "title" : "beginners" }}}
次のようにレコードが返されます
{
took: 3
timed_out: false
_shards: {
total: 5
successful: 5
failed: 0
}
hits: {
total: 1
max_score: 0.19178301
hits: [
{
_index: models_book
_type: models_book
_id: 1
_score: 0.19178301
_source: {
title: Java for beginners
author: Bruce Eckel
publisher: Timburys
binding: Paperback
price: 450
discount: 10
releasedYear: 2010
inStock: true
language: English
deliveryTime: 3 days
id: 1
}
}
]
}
}
誰かがこれに光を当てることができれば、それは大きな助けになるでしょう。正しい方向への助けは大歓迎です
ありがとう