我收到了ID列表:
public class MyGdxGame extends ApplicationAdapter {
SpriteBatch batch;
Texture img;
private Viewport viewport;
private Camera camera;
@Override
public void create() {
camera = new OrthographicCamera();
viewport = new StretchViewport(Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
viewport.setCamera(camera);
batch = new SpriteBatch();
img = new Texture("badlogic.jpg");
}
@Override
public void render() {
camera.update();
Gdx.gl.glClearColor(0, 0, 0, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
batch.begin();
batch.draw(img, 0, 0, viewport.getWorldWidth(),viewport.getWorldHeight());
batch.end();
}
@Override
public void resize(int width, int height) {
viewport.update(width, height);
}
}
每个*都是一个未知的字符,我需要找到符合这些模式的所有ID。
我在 id , _id 和 ID 等字段名称上尝试了 regex 过滤器,始终使用&# 34。BC2 * 13" (或其他人)但即使现有文件也没有匹配。
答案 0 :(得分:2)
默认情况下,_id
字段未编入索引:这就是您没有结果的原因。
尝试在映射中将_id
字段设置为analyzed
:
POST /test_id/
{
"mappings":{
"indexed":{
"_id":{
"index":"analyzed"
}
}
}
}
添加一些文档:
PUT /test_id/indexed/bc2***********************13
{
"content":"test1"
}
PUT /test_id/indexed/b53***********************92
{
"content":"test2"
}
我查看了一个简单的regexp
查询:
POST /test_id/_search
{
"query": {
"regexp": {
"_id": "bc2.*13"
}
}
}
结果:
"hits": {
"total": 1,
"max_score": 1,
"hits": [
{
"_index": "test_id",
"_type": "indexed",
"_id": "bc2***********************13",
"_score": 1,
"_source": {
"content": "test1"
}
}
]
}
希望这会有所帮助:)
答案 1 :(得分:0)
如果*
已知并且长度恒定:
bc2.{23}13|b53.{23}92|39f.{23}bb|eb7.{23}7a|80b.{23}22
否则:
bc2.*?13|b53.*?92|39f.*?bb|eb7.*?7a|80b.*?22
答案 2 :(得分:0)
使用_uid
字段和wildcard
查询:
GET yourIndex/yourType/_search
{
"query": {
"wildcard": {
"_uid": "bc2***********************13"
}
}
}