我是 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 初学者”,我正在尝试从 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
}
}
]
}
}
如果有人可以对此有所了解,那将有很大帮助。任何正确方向的帮助将不胜感激
谢谢