gpt4 book ai didi

elasticsearch - 如何标记从 Neo4j 复制到 Elastic 搜索的数据?

转载 作者:行者123 更新时间:2023-12-03 01:48:31 25 4
gpt4 key购买 nike

在我的 Neo4j 图表中,我只需要一种特定类型的节点即可被用户搜索。该节点具有标签“Synonym”和只有一个属性“alias”。

我正在使用 GraphAware Neo4j Elasticsearch Integration (Neo4j Module)它将图形复制到 Elasticsearch ,即它为我创建了一个 Elasticsearch 索引。然后我可以进行如下查询

CALL ga.es.queryNode('{\"query\":{\"match\":{\"alias\":\"mySynonym\"}}}')
YIELD node RETURN node

这可行,但我想使用 n gram tokenizer对于我的同义词,即“别名”属性。目前,上面的查询只在我输入全名时返回结果,即“mySynonym”,但在我只输入“myS”时不返回结果。

在模块文档中,我找不到任何关于标记器的信息。所以我尝试更新 Neo4J 模块创建的 Elasticsearch 索引,如下所示:
PUT neo4j-index-node/_settings
{

"analysis": {
"analyzer": {
"my_analyser": {
"tokenizer": "my_tokenizer"
}
},
"tokenizer": {
"my_tokenizer": {
"type": "edge_ngram",
"min_gram": 2,
"max_gram": 20,
"token_chars": [
"letter",
"digit",
"punctuation"
]
}
}
}
}

进而:
    PUT neo4j-index-node/_mapping/Synonym?update_all_types 
{
"properties": {
"alias": {
"type": "text",
"analyzer": "my_analyser",
"search_analyzer": "my_analyser"
}
}
}

第二个命令给了我一个错误:

Mapper for [alias] conflicts with existing mapping in other types:\n[mapper [alias] has different [analyzer]



我在某处读到,创建索引后无法更改映射。但是我的索引是由 Neo4j 模块创建的,我不知道如何事先指定标记器。

有任何想法吗?谢谢!

最佳答案

确实不能修改现有映射。删除所有现有索引。尝试先为 Neo4j 索引创建 ES 模板(在导入 Neo4j 数据之前)。

可以像这样创建模板:

PUT _template/template_1
{
"template": "te*",
"settings": {
"number_of_shards": 1
},
"mappings": {
"type1": {
"_source": {
"enabled": false
},
"properties": {
"host_name": {
"type": "keyword"
},
"created_at": {
"type": "date",
"format": "EEE MMM dd HH:mm:ss Z YYYY"
}
}
}
}
}

.. 在 模板 设置您的索引模式。然后里面 设置 部分添加您的自定义分析器,如下所示:
PUT my_index
{
"settings": {
"analysis": {
"analyzer": {
"my_custom_analyzer": {
"type": "custom",
"tokenizer": "standard",
"char_filter": [
"html_strip"
],
"filter": [
"lowercase",
"asciifolding"
]
}
}
}
}
}

..然后开始索引数据。我向您展示了 2 个示例查询,但您应该将其合并为一个

关于elasticsearch - 如何标记从 Neo4j 复制到 Elastic 搜索的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42164594/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com