gpt4 book ai didi

elasticsearch - Elasticsearch忽略断字器

转载 作者:行者123 更新时间:2023-12-02 22:34:04 25 4
gpt4 key购买 nike

我是Elasticsearch的新手,但在查询方面遇到了问题。

我索引这样的字符串:

my-super-string
my-other-string
my-little-string

这弦是。
因此,它们不是空格,只有字母数字字符。相关字段的映射仅是“type = string”。

我正在使用这样的查询:
{ "query":{ "query_string":{ "query": "*"+<MY_QUERY>+"*", "rewrite": "top_terms_10" } }}

其中“MY_QUERY”也是一条。例如“my-super”。

当搜索“我的”时,我得到结果。

当搜索“my-super”时,我没有结果,我想要“my-super-string”。

有人可以帮我吗?谢谢!

最佳答案

我建议您使用match_phrase而不是使用带前导和尾随通配符的查询字符串。甚至标准的分析器也应该能够正确地将条块分割成 token ,因此不需要通配符。

curl -XPUT "localhost:9200/slugs/doc/1" -d '{"slug": "my-super-string"}'
echo
curl -XPUT "localhost:9200/slugs/doc/2" -d '{"slug": "my-other-string"}'
echo
curl -XPUT "localhost:9200/slugs/doc/3" -d '{"slug": "my-little-string"}'
echo
curl -XPOST "localhost:9200/slugs/_refresh"
echo
echo "Searching for my"
curl "localhost:9200/slugs/doc/_search?pretty=true&fields=slug" -d '{"query" : { "match_phrase": {"slug": "my"} } }'
echo
echo "Searching for my-super"
curl "localhost:9200/slugs/doc/_search?pretty=true&fields=slug" -d '{"query" : { "match_phrase": {"slug": "my-super"} } }'
echo
echo "Searching for my-other"
curl "localhost:9200/slugs/doc/_search?pretty=true&fields=slug" -d '{"query" : { "match_phrase": {"slug": "my-other"} } }'
echo
echo "Searching for string"
curl "localhost:9200/slugs/doc/_search?pretty=true&fields=slug" -d '{"query" : { "match_phrase": {"slug": "string"} } }'

另外,您可以创建自己的分析器,该分析器仅将“-”上的条块拆分为 token
curl -XDELETE localhost:9200/slugs
curl -XPUT localhost:9200/slugs -d '{
"settings": {
"index": {
"number_of_shards": 1,
"number_of_replicas": 0,
"analysis": {
"analyzer" : {
"slug_analyzer" : {
"tokenizer": "slug_tokenizer",
"filter" : ["lowercase"]
}
},
"tokenizer" :{
"slug_tokenizer" : {
"type": "pattern",
"pattern": "-"
}
}
}
}
},
"mappings" :{
"doc" : {
"properties" : {
"slug" : {"type": "string", "analyzer" : "slug_analyzer"}
}
}
}
}'

关于elasticsearch - Elasticsearch忽略断字器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13403900/

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