Open
Description
创建的fulltext索引:
class CourseText(Model):
id = fields.IntField(pk=True)
shines_text = fields.TextField()
english_text = fields.TextField()
def __str__(self):
return self.shines_text
class Meta:
table = 'course_text'
indexes = [
FullTextIndex(fields=("shines_text", "english_text"), parser_name='ngram')
]
使用 SearchCriterio全文检索:
@app.get('/coursetext/{strs}')
async def get_course_text(strs: str):
#c = await CourseText.raw(f"select * from course_text where match (shines_text, english_text) against ('{strs}')")
c = SearchCriterion(Term('shines_text'),
Term('english_text'), expr=Term(strs), mode=Mode.NATURAL_LANGUAGE_MODE)
return c
接口返回:
{
"alias": null,
"comparator": " ",
"left": {
"alias": null,
"name": "MATCH",
"args": [
{
"alias": "shines_text"
},
{
"alias": "english_text"
}
],
"schema": null
},
"right": {
"alias": null,
"name": "AGAINST",
"args": [
{
"alias": "王速所院里持口切"
}
],
"schema": null,
"mode": "IN NATURAL LANGUAGE MODE"
}
}
为什么没有正确返回检索出来的内容呢