问题标签 [elastica]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - 如何使用 Elastica 正确运行 _count_ 查询?
我一直在使用 ElasticSearch 和 Elastica ( http://elastica.io/ ) 组合我们的搜索实现。
目前我无法弄清楚如何执行计数搜索,正如 ElasticSearch 的计数 API 中所说的那样。
谁能帮我解决这个问题?一些示例代码会很棒,因为我还不是 100% 了解所有 Elastica 对象之间的关系。
提前致谢。
elastica - Elastica:检查 ID 为 x 的文档是否存在的最佳方法?
使用 PHP Elastica 库,我想知道检查 Id=1 的文档是否存在的最佳方法是什么?
我正在做如下:
但是,上面的代码不起作用,因为如果文档不存在,getDocument() 方法会抛出 NotFoundException。
或者,我可以使用以下内容进行类型“搜索”:
但是,上面看起来很麻烦......有什么更好的方法? 这个另一个问题适用于 ElasticSearch,其中一个答案表明了我的第一种方法(相当于使用 getDocument)。但是,我不希望抛出异常,因为使用 Elastica 就是这种情况......
elasticsearch - Elasticsearch - 结果中的错误顺序
我尝试搜索文本“断点”,我得到:
1)断点得分 7.6
2)断点得分 7.5
我按分数排序。
我想按以下顺序获得结果:
2)断点
1)断点
我在 Elastica 使用了 FuzzyLikeThis。我只写了简单的例子,我需要使用 FuzzyLike 因为我搜索所有文档和不同的字段。
我的索引:
如果有人能帮助我将不胜感激
php - 使用 mvel 基于正则表达式的弹性评分
我是弹性搜索的新手,这是我要解决的方案。我有一个支持自动建议逻辑的搜索输入框。结果是从使用 ngram 过滤器的弹性索引中获取的。我要改进的是引入评分功能,以便将结果从最重要的结果排序到次要的结果(取决于分数)。分数必须基于以下情况:
- 如果存在以给定字符串开头的匹配项,则设置分数 100
- 如果有一个匹配包含给定的字符串并且不以它开头,则将 score 设置为 10
为此,使用 mvel 语句实现了一个 elastica 脚本,以支持正则表达式匹配。换句话说,它检查左边的值是否与右边的正则表达式匹配(只有这样一个变量才会相应地递增)。但不幸的是,尽管左侧的值也是指定语言的,但当搜索字符串是特定于语言的时,它会出错。另一个要处理的问题是我上面提到的第二种情况(无法使其工作)。
以给定单词 ('one') 开头的值 ('one example' (属于 name 字段)) 的脚本工作得很好。
当值('一个示例'(属于名称字段))包含给定单词('示例')时的脚本不起作用,因此总分保持 1 并且不会按应有的方式增加到 11。
最后,使用相同的逻辑,当我尝试将希腊词与名称字段的值(包含希腊字母)进行匹配时,总分的增量也会被忽略。
所有的工作都是使用elastica完成的,更不用说php了。你能帮忙解决我的问题吗?如果有其他方法/解决方案,请随时与我分享。
先感谢您
php - 在 Elastica 中使用正则表达式
我最近一直在使用elastisearch trough elastica,但我在使用正则表达式时遇到了问题。
这是我的问题:
我需要找到“名称”不以字母开头的“Foo”实体的所有实例。
根据elasticsearch文档,有一个“regexp”过滤器,但我在elastica中找不到实现。
我努力了:
从我可以得到的文档中:
基本上我找不到我应该从 Elastica 使用什么类型的查询类。
谢谢你的帮助 !
php - 在 Elasticsearch 和 Symfony2 中使用日期范围
我在基于 Doctrine 的实体类中有一个标准的 Datetime 字段:
这会生成一个 DateTime 对象并按预期工作。但是当这个对象与 FOSElasticaBundle 集成时会出现问题。由于 DateTime 对象不支持 __toString() 方法,我不得不使用属性重构我的 Elastica 配置,以便填充命令运行:
这会正确填充日期,但会以默认的 Elasticsearch 格式加载并忽略任何自定义格式。
问题是我基于此日期字段的范围查询未返回预期结果。即使 Elasticsearch 中有此范围内的项目,以下过滤器也不会返回任何内容。
通过 curl 直接在 Elasticsearch 中运行时生成的查询返回相同的错误结果。
我确实注意到将 gte 参数更改为 2012 会返回 2013 年日期范围内的预期结果,所以我想知道不正确的日期格式是否导致过滤器四舍五入或类似的东西?
有任何想法吗?谢谢。
php - 使用弹性搜索时忽略希腊单词中的重音符号
我有一个支持自动建议逻辑的搜索输入框。结果从弹性索引中获取,其分析器(index_analyzer、search_analyzer)用作标记器:nGram,并用作过滤器:search_analyzer 的标准、小写和 asciifolding 以及 index_analyzer 的小写和 asciifolding。我正在努力实现但没有任何效果/结果的是即使用户给出了一个没有重音的希腊词(tonos)也能得到结果。否则,用户会得到正确的结果,并且机制会按预期工作。我不得不提到,给定的字符串与文档集的特定字段匹配,该文档集包括带有重音的希腊词。此外,该字段是字符串数据类型,可以进行分析。
查询已形成(使用示例字符串没有强调问题的重音):
一个快速但不合适的解决方案是形成一个模糊查询,将 min_similarity 设置为 0.7。然后它会彻底工作,但成本很高。
所有的工作都是使用elastica完成的,更不用说php了。你能帮忙解决我的问题吗?对我来说,找到解决办法是当务之急。
先感谢您
php - Elasticsearch index search with different limits
I'm using elasticsearch to serve people when they are using dropdown. So far, so good. Right now I'm trying to figure out is it possible to search from different types with different sorts/filters/limits.
So far I've found my way out with different filters per type and kinda with sorts. I've achieved different filters with boolean query, using shoulds and sorting is depending on scores. My goal is to show total 10 rows, where 8 of then should be products, 2 rows should be categories. For categories this limit should be max, if there is no categories to display, 10 products should be displayed. I've read the docs and I can see that size can be set to query body like sorting. But sorting has more flexibility. So yes, question is about the limit - is there a way to achieve it?
autosuggest - 如何从特定类型设置 Elastica 建议?
我对 elasticsearch 不熟悉,并尝试与 elastica 相处。我尝试设置从特定类型提出建议的建议者。我曾尝试使用 \Elastica\Search 中的 addType 方法,但它不起作用。
有人可以帮我解决吗?谢谢
php - 使用 elastica 的全文查询
我是弹性搜索的新手。你能帮我创建查询吗?我需要按名称搜索。
谢谢,