mirror of
https://git.mirrors.martin98.com/https://github.com/infiniflow/ragflow.git
synced 2025-08-13 18:55:55 +08:00
Make infinity adapt (#4635)
### What problem does this PR solve? ### Type of change - [x] Bug Fix (non-breaking change which fixes an issue)
This commit is contained in:
parent
9d717f0b6e
commit
71c132f76d
File diff suppressed because one or more lines are too long
@ -30,7 +30,7 @@
|
|||||||
"knowledge_graph_kwd": {"type": "varchar", "default": "", "analyzer": "whitespace"},
|
"knowledge_graph_kwd": {"type": "varchar", "default": "", "analyzer": "whitespace"},
|
||||||
"entities_kwd": {"type": "varchar", "default": "", "analyzer": "whitespace"},
|
"entities_kwd": {"type": "varchar", "default": "", "analyzer": "whitespace"},
|
||||||
"pagerank_fea": {"type": "integer", "default": 0},
|
"pagerank_fea": {"type": "integer", "default": 0},
|
||||||
"tag_feas": {"type": "integer", "default": 0},
|
"tag_feas": {"type": "varchar", "default": ""},
|
||||||
|
|
||||||
"important_kwd": {"type": "varchar", "default": "", "analyzer": "whitespace"},
|
"important_kwd": {"type": "varchar", "default": "", "analyzer": "whitespace"},
|
||||||
"from_entity_kwd": {"type": "varchar", "default": "", "analyzer": "whitespace"},
|
"from_entity_kwd": {"type": "varchar", "default": "", "analyzer": "whitespace"},
|
||||||
|
@ -484,7 +484,7 @@ def update_nodes_pagerank_nhop_neighbour(tenant_id, kb_id, graph, n_hop):
|
|||||||
chunk,
|
chunk,
|
||||||
search.index_name(tenant_id), kb_id)
|
search.index_name(tenant_id), kb_id)
|
||||||
else:
|
else:
|
||||||
settings.docStoreConn.insert([{"id": chunk_id(chunk), **chunk}], search.index_name(tenant_id))
|
settings.docStoreConn.insert([{"id": chunk_id(chunk), **chunk}], search.index_name(tenant_id), kb_id)
|
||||||
|
|
||||||
|
|
||||||
def get_entity_type2sampels(idxnms, kb_ids: list):
|
def get_entity_type2sampels(idxnms, kb_ids: list):
|
||||||
|
@ -299,7 +299,7 @@ class InfinityConnection(DocStoreConnection):
|
|||||||
matchExpr.extra_options[k] = str(v)
|
matchExpr.extra_options[k] = str(v)
|
||||||
logger.debug(f"INFINITY search MatchTextExpr: {json.dumps(matchExpr.__dict__)}")
|
logger.debug(f"INFINITY search MatchTextExpr: {json.dumps(matchExpr.__dict__)}")
|
||||||
elif isinstance(matchExpr, MatchDenseExpr):
|
elif isinstance(matchExpr, MatchDenseExpr):
|
||||||
if filter_cond and "filter" not in matchExpr.extra_options:
|
if filter_fulltext and filter_cond and "filter" not in matchExpr.extra_options:
|
||||||
matchExpr.extra_options.update({"filter": filter_fulltext})
|
matchExpr.extra_options.update({"filter": filter_fulltext})
|
||||||
for k, v in matchExpr.extra_options.items():
|
for k, v in matchExpr.extra_options.items():
|
||||||
if not isinstance(v, str):
|
if not isinstance(v, str):
|
||||||
@ -424,9 +424,11 @@ class InfinityConnection(DocStoreConnection):
|
|||||||
assert "_id" not in d
|
assert "_id" not in d
|
||||||
assert "id" in d
|
assert "id" in d
|
||||||
for k, v in d.items():
|
for k, v in d.items():
|
||||||
if k in ["important_kwd", "question_kwd", "entities_kwd"]:
|
if k in ["important_kwd", "question_kwd", "entities_kwd", "tag_kwd"]:
|
||||||
assert isinstance(v, list)
|
assert isinstance(v, list)
|
||||||
d[k] = "###".join(v)
|
d[k] = "###".join(v)
|
||||||
|
elif re.search(r"_feas$", k):
|
||||||
|
d[k] = json.dumps(v)
|
||||||
elif k == 'kb_id':
|
elif k == 'kb_id':
|
||||||
if isinstance(d[k], list):
|
if isinstance(d[k], list):
|
||||||
d[k] = d[k][0] # since d[k] is a list, but we need a str
|
d[k] = d[k][0] # since d[k] is a list, but we need a str
|
||||||
@ -462,7 +464,12 @@ class InfinityConnection(DocStoreConnection):
|
|||||||
del condition["exist"]
|
del condition["exist"]
|
||||||
filter = equivalent_condition_to_str(condition)
|
filter = equivalent_condition_to_str(condition)
|
||||||
for k, v in list(newValue.items()):
|
for k, v in list(newValue.items()):
|
||||||
if k.endswith("_kwd") and isinstance(v, list):
|
if k in ["important_kwd", "question_kwd", "entities_kwd", "tag_kwd"]:
|
||||||
|
assert isinstance(v, list)
|
||||||
|
newValue[k] = "###".join(v)
|
||||||
|
elif re.search(r"_feas$", k):
|
||||||
|
newValue[k] = json.dumps(v)
|
||||||
|
elif k.endswith("_kwd") and isinstance(v, list):
|
||||||
newValue[k] = " ".join(v)
|
newValue[k] = " ".join(v)
|
||||||
elif k == 'kb_id':
|
elif k == 'kb_id':
|
||||||
if isinstance(newValue[k], list):
|
if isinstance(newValue[k], list):
|
||||||
@ -531,7 +538,7 @@ class InfinityConnection(DocStoreConnection):
|
|||||||
v = res[fieldnm][i]
|
v = res[fieldnm][i]
|
||||||
if isinstance(v, Series):
|
if isinstance(v, Series):
|
||||||
v = list(v)
|
v = list(v)
|
||||||
elif fieldnm in ["important_kwd", "question_kwd", "entities_kwd"]:
|
elif fieldnm in ["important_kwd", "question_kwd", "entities_kwd", "tag_kwd"]:
|
||||||
assert isinstance(v, str)
|
assert isinstance(v, str)
|
||||||
v = [kwd for kwd in v.split("###") if kwd]
|
v = [kwd for kwd in v.split("###") if kwd]
|
||||||
elif fieldnm == "position_int":
|
elif fieldnm == "position_int":
|
||||||
|
Loading…
x
Reference in New Issue
Block a user