无法为android中的搜索配置haystack elasticsearch
我从这个[教程][1]开始,但我不知道如何在android应用程序中设置搜索。到目前为止,我已经使用django REST框架制作了一个模型,然后在android中使用改进来生成无法为android中的搜索配置haystack elasticsearch,android,django,
elasticsearch,django-haystack,django-rest-framework-gis,Android,Django,
elasticsearch,Django Haystack,Django Rest Framework Gis,我从这个[教程][1]开始,但我不知道如何在android应用程序中设置搜索。到目前为止,我已经使用django REST框架制作了一个模型,然后在android中使用改进来生成GET、PUT和POST请求 现在我想按名称搜索我的产品 上面的教程试图创建搜索HTML页面并在该HTML页面中键入查询,但我需要一个端点,在这里我可以发送GET搜索请求 请帮我理解怎么做 class Product(models.Model): name=models.CharField(max_len
GET
、PUT
和POST
请求
现在我想按名称搜索我的产品
上面的教程试图创建搜索HTML页面并在该HTML页面中键入查询,但我需要一个端点,在这里我可以发送GET
搜索请求
请帮我理解怎么做
class Product(models.Model):
name=models.CharField(max_length=50)
mrp = models.DecimalField(max_digits=20)
company=models.CharField(max_length=100)
class ProductSerializer(serializers.ModelSerializer):
class Meta:
model = Product
fields = ('id', 'name', 'mrp', 'company')
class ProductViewSet(viewsets.ModelViewSet):
queryset = Product.objects.all()
serializer_class = ProductSerializer
permission_classes = (permissions.IsAuthenticatedOrReadOnly,)
class ProductIndex(indexes.SearchIndex, indexes.Indexable):
text = indexes.CharField(document=True, use_template=True)
name = indexes.CharField(model_attr='name')
company=indexes.CharField(model_attr='company')
def get_model(self):
return Product
def index_queryset(self, using=None):
"""Used when the entire index for model is updated."""
return self.get_model().objects.all()
现在,我应该如何使用这个ItemIndex来使用haystack创建搜索url。
[1] :在DRF中:
class ProductViewSet(viewsets.ModelViewSet):
queryset = Product.objects.all()
serializer_class = ProductSerializer
permission_classes = (IsAuthenticated,)
@list_route(methods=['POST'])
def search(self, request):
key = request.data['key']
queryset = Product.objects.filter(name__icontains=key)
serializer = ProductSerializer(queryset, many=True)
return Response(serializer.data)
在Android Okhttp3演示中:
RequestBody requestBody = new FormBody.Builder()
.add("key", ProductName)
.build();
Request request = new Request.Builder()
.post(requestBody)
.url(Constants.ProductSearch)
.build();
HttpClientUtil.getClient().newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {}
@Override
public void onResponse(Call call, final Response response) throws IOException {
final String data = response.body().string();
Log.e("Http",data);
}
});
我能理解如何将ProductIndex与这个ProductViewSet一起使用,你能详细解释一下吗。谢谢你的帮助。你想用DRF中的get方法获取密钥吗?不,我想用haystack elastic search为android创建一个搜索引擎。像drf haystack这样的东西。我帮不了你