我们在django 1.10中搜索,我们需要用trigram搜索进行用户排名搜索.
我们的代码是这样的:
def get_queryset(self):
search = self.request.GET.get('text', '')
vector = SearchVector('name',weight='A',
config=settings.SEARCH_LANGS[
settings.LANGUAGE
],
) + SearchVector(
'content',
weight='B',
config=settings.SEARCH_LANGS[
settings.LANGUAGE
],
)
query = SearchQuery(search)
return Article.objects.annotate(
rank=SearchRank(
vector,
query
),
similarity=TrigramSimilarity(
'name', search
) + TrigramSimilarity(
'content', search
),
).filter(
rank__gte=0.3
).filter(
similarity__gt=0.3
).order_by(
'-similarity'
)[:20]
Run Code Online (Sandbox Code Playgroud)
但是这段代码不会返回任何查询,如果没有使用trigram,我们就会遇到问题,但是,在它们之间我们无法得到查询.
我们如何在django 1.10中组合trigram和排名搜索?
我正在制作自己的开发工具OpenEdx.
我devstack从edx中取出了官方存储库,我正在修改它.
我正在尝试添加forums到我的堆栈但我无法运行,因为docker compose.
我把它添加到composer文件中:
forums:
command: bash -c 'source /edx/app/forum/cs_comments_service_env && ruby app.rb -p 18080'
container_name: edx.devstack.forums
depends_on:
# - xqueue:xqueue
- mongo
- elasticsearch
# - rabbitmq:rabbitmq
- mysql
- memcached
environment:
CACHE_LOCATION: edx.devstack.memcached:12211
DB_HOST: edx.devstack.mysql
TEST_ELASTICSEARCH_URL: "http://edx.devstack.elasticsearch:9200"
image: edxops/forums:latest
ports:
- 4567:4567
Run Code Online (Sandbox Code Playgroud)
我对运行中正确的命令感到困惑:
studio:
command: bash -c 'source /edx/app/edxapp/edxapp_env && python /edx/app/edxapp/edx-platform/manage.py cms runserver 0.0.0.0:18010 --settings devstack_docker'
Run Code Online (Sandbox Code Playgroud)
这是工作室的命令.
forums:
command: bash -c 'source /edx/app/forum/cs_comments_service_env && ruby app.rb -p 18080' …Run Code Online (Sandbox Code Playgroud) 我正在制作和调查检索信息研讨会.我有一个json带有文章列表的文件,我需要对它们进行索引,并在使用带有突出显示的过滤器之后.
在终端中执行此操作的步骤列表如下:
1.创建具有渗透的地图.
curl -XPUT 'localhost:9200/my-index?pretty' -H 'Content-Type: application/json' -d'
{
"mappings": {
"_doc": {
"properties": {
"title": {
"type": "text"
},
"query": {
"type": "percolator"
}
}
}
}
}
'
Run Code Online (Sandbox Code Playgroud)
索引新文章:
Run Code Online (Sandbox Code Playgroud)curl -XPUT 'localhost:9200/my-index/_doc/1?refresh&pretty' -H 'Content-Type: application/json' -d' { "CourseId":35, "UnitId":12390, "id":"16069", "CourseName":"ARK102U_ARKEOLOJ?K ALAN YÖNET?M?", "FieldId":8, "field":"TAR?H", "query": { "span_near" : { "clauses" : [ { "span_term" : { "title" : "dünya" } }, { "span_term" : { "title" : "miras?" } }, { "span_term" : …
我们正在 ElasticSearch 中使用过滤器,我们需要通过短语而不是逐字获得完整的突出显示:
例如,我们有下一个搜索:
curl -X GET "localhost:9200/my-index/_search" -H 'Content-Type: application/json' -d'
{
"query" : {
"percolate" : {
"field": "query",
"document" : {
"title" : "A new bonsai tree in the office and jungle. The enojen tree in a kerojen."
}
}
},
"highlight": {
"fields": {
"title": {}
}
}
}
'
Run Code Online (Sandbox Code Playgroud)
我们得到下一个输出:
{
"took":12,
"timed_out":false,
"_shards":{
"total":5,
"successful":5,
"skipped":0,
"failed":0
},
"hits":{
"total":45,
"max_score":2.1576157,
"hits":[
{
"_index":"my-index",
"_type":"_doc",
"_id":"2",
"_score":2.1576157,
"_source":{
"query":{
"match":{
"title":"the enojen tree in …Run Code Online (Sandbox Code Playgroud) 我正在尝试对 Strapi API 执行 POST,但似乎无法弄清楚如何附加“具有和属于多”(多对多)关系。
我已经尝试过以下机构:
events: ["ID", "ID"]
name: "name"
Run Code Online (Sandbox Code Playgroud)
&
events: [ID, ID]
name: "name"
Run Code Online (Sandbox Code Playgroud)
我认为,关于文档的哪个应该是正确的。
没有错误,我收到“200 OK”响应。它添加了记录但没有关系。
事件.settings.json:
{
"connection": "default",
"collectionName": "events",
"info": {
"name": "event",
"description": ""
},
"options": {
"increments": true,
"timestamps": [
"created_at",
"updated_at"
],
"comment": ""
},
"attributes": {
"name": {
"type": "string"
},
"artists": {
"collection": "artist",
"via": "events",
"dominant": true
}
}
}
Run Code Online (Sandbox Code Playgroud)
Artist.settings.json:
{
"connection": "default",
"collectionName": "artists",
"info": {
"name": "artist",
"description": ""
},
"options": { …Run Code Online (Sandbox Code Playgroud) 我们正在开发一个项目,我们正在使用Django 1.10a1,我们正在使用带有PostgreSQL的django全文搜索,但我们需要使用unaccent.
所以,我有这个代码:
search = 'Car'
query_set = Article.objects.annotate(
search=SearchVector(
'content',
'name'
)
).filter(
search__unaccent=search
)
Run Code Online (Sandbox Code Playgroud)
当我们尝试在查询不起作用unaccent后添加单词时search.我们怎样才能让django全文搜索与postgress unaccent一起工作?
我有运行服务器的自定义设置的这个错误:
salahaddin@TulipanROG ? ~/Proyectos/tiempoturco/tiempoturco ? (tiempoturco) ? ./manage.py runserver ? ? ? 640 ? 23:22:06
Performing system checks...
System check identified no issues (0 silenced).
June 19, 2016 - 23:22:07
Django version 1.10a1, using settings 'tiempoturco.settings.dev'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
Unhandled exception in thread started by <function check_errors.<locals>.wrapper at 0x7f288d67f2f0>
Traceback (most recent call last):
File "/home/salahaddin/Proyectos/tiempoturco/lib/python3.5/site-packages/django/utils/autoreload.py", line 226, in wrapper
fn(*args, **kwargs)
File "/home/salahaddin/Proyectos/tiempoturco/lib/python3.5/site-packages/django/core/management/commands/runserver.py", line 142, in inner_run
handler = self.get_handler(*args, **options)
File …Run Code Online (Sandbox Code Playgroud)