我是搜索/索引方面的新手,我正在使用 Symfony 的 FosElasticaBundle 为 Web 应用程序提供搜索功能。在我发现默认设置只允许全词搜索之前,我已经设置并运行它没有问题。
然后我尝试了几个小时来启用部分单词匹配,但没有运气。我尝试了 nGram 和 edgenGram 等,但我真的对所有概念感到困惑。我确实尝试搜索有关概念和配置的教程,但并没有真正得到答案。
这是我的配置:
fos_elastica:
clients:
default: { host: localhost, port: 9200 }
serializer:
callback_class: FOS\ElasticaBundle\Serializer\Callback
serializer: serializer
indexes:
website:
client: default
finder: ~
settings:
index:
analysis:
analyzer:
index_analyzer:
tokenizer: "nGram"
filter: ["lowercase", "snowball"]
search_analyzer:
tokenizer: "nGram"
filter: ["lowercase", "snowball"]
filter:
snowball:
type: "snowball"
language: "English"
types:
client:
mappings:
BusinessName: { boost: 10 }
users:
type: "object"
properties:
firstName: { boost: 5 }
lastName: { boost: 5 }
email: { boost: 10 }
persistence:
driver: orm # orm, mongodb, propel are available
model: E1\Bundle\CoreBundle\Entity\Client
listener:
provider: ~
finder: ~
该文档没有帮助。谁能告诉我如何获得部分单词匹配集和/或让我知道在哪里可以找到有关概念(标记器、过滤器、分析器)的教程?