eland.DataFrame.es_match#
- DataFrame.es_match(text: str, *, columns: Optional[Union[str, Sequence[str]]] = None, match_phrase: bool = False, must_not_match: bool = False, multi_match_type: Optional[str] = None, match_only_text_fields: bool = True, analyzer: Optional[str] = None, fuzziness: Optional[Union[int, str]] = None, **kwargs: Any) DataFrame #
使用 Elasticsearch
match
、match_phrase
或multi_match
查询根据给定的参数和列过滤数据。了解有关 Elasticsearch 中的全文查询 的更多信息
默认情况下,会查询 Elasticsearch 中所有类型为“text”的字段,否则可以通过
columns
参数指定特定列,或者使用eland.Series.es_match()
过滤单个列。所有其他关键字参数都将在匹配查询的主体中传递。
参数#
- text: str
要搜索的文本字符串
- columns: str, List[str], 可选
要搜索的列列表。默认为 Elasticsearch 中的所有“text”字段
- match_phrase: bool, 默认值为 False
如果为 True,将使用
match_phrase
而不是match
查询,这将考虑text
参数的顺序。- must_not_match: bool, 默认值为 False
如果为 True,将对查询应用布尔 NOT (~)。查询将要求文本不匹配,而不是要求匹配。
- multi_match_type: str, 可选
如果给出并针对多个列进行匹配,则将设置
multi_match.type
设置- match_only_text_fields: bool, 默认值为 True
如果为 True,如果查询任何非文本字段,此函数将引发错误,以防止未分析的字段无法正常工作。设置为 False 以忽略此预防性检查。
- analyzer: str, 可选
指定用于匹配查询的分析器
- fuzziness: int, str, 可选
指定匹配查询的模糊选项
返回值#
- DataFrame
使用给定匹配查询过滤后的
eland.DataFrame
示例#
>>> df = ed.DataFrame("http://localhost:9200", "ecommerce") >>> df.es_match("Men's", columns=["category"]) category currency ... type user 0 [Men's Clothing] EUR ... order eddie 4 [Men's Clothing, Men's Accessories] EUR ... order eddie 6 [Men's Clothing] EUR ... order oliver 7 [Men's Clothing, Men's Accessories, Men's Shoes] EUR ... order abd 11 [Men's Accessories, Men's Clothing] EUR ... order eddie ... ... ... ... ... ... 4663 [Men's Shoes, Men's Clothing] EUR ... order samir 4667 [Men's Clothing, Men's Shoes] EUR ... order sultan 4671 [Men's Clothing] EUR ... order jim 4672 [Men's Clothing] EUR ... order yahya 4674 [Women's Accessories, Men's Clothing] EUR ... order jackson [2310 rows x 45 columns]