程序笔记   发布时间:2022-06-07  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了hastack大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

<table class="text"><tr class="li1">
<td class="ln"><pre class="de1">1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89

haystack
pip install elasticsearch==2.4.1
INSTALLED_APPS = [
    ...
    'haystack',    ...
]
 
haystack_CONNECTIONS = {
    'default': {
        'ENGINE': 'haystack.BACkends.elasticsearch_BACkend.ElasticsearchSearchENGIne',        'URL': 'http://10.211.55.5:9200/', # 此处为elasticsearch运行的服务器ip地址,端口号固定为9200
        'index_name': 'mEIDuo', # 指定elasticsearch建立的索引库的名称
    },}
 
# 当添加、修改、删除数据时,自动生成索引
haystack_SIGNAL_PROCESSOR = 'haystack.signals.RealtimeSignalProcessor'
 
# 创建search_index.py索引文件
from haystack import indexes
 
from goods.models import SKU
 
 
class SKUIndex(indexes.SearchIndex,indexes.IndexablE):
    """
    SKU索引数据模型类
    """
    TEXT = indexes.CharFIEld(document=True,use_template=TruE)
 
    def get_model(self):
        """返回建立索引的模型类"""
        return SKU
 
    def index_queryset(self,using=NonE):
        """返回要建立索引的数据查询集"""
        return self.get_model().objects.filter(is_launched=TruE)
        
具体在templates/search/indexes/goods/sku_text.txt文件中定义
 
{{ object.name }}
{{ object.caption }}
{{ object.ID }}
 
手动生成索引
python manage.py rebuild_index
 
#创建序列化器
from drf_haystack.serializers import haystackserializer
 
class SKUserializer(serializers.Modelserializer):
    """
    SKU序列化器
    """
    class Meta:
        model = SKU
        fIElds = ('ID','name','price','default_image_url','comments')
 
class SKUIndexserializer(haystackserializer):
    """
    SKU索引结果数据序列化器
    """
    object = SKUserializer(read_only=TruE)
 
    class Meta:
        index_classes = [SKUIndex]
        fIElds = ('text','object')
 
# 创建视图函数
from drf_haystack.vIEwsets import haystackVIEwSet
 
class SKUSearchVIEwSet(haystackVIEwSet):
    """
    SKU搜索
    """
    index_models = [SKU]
 
    serializer_class = SKUIndexserializer
    
# 定义路由
router = DefaultRouter()
router.register('skus/search',vIEws.SKUSearchVIEwSet,base_name='skus_search')
 
...
 
urlpatterns += router.urls
#测试
http://API.mEIDuo.site:8000/skus/search/?text=wifitable>

大佬总结

以上是大佬教程为你收集整理的hastack全部内容,希望文章能够帮你解决hastack所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。