text:
(¯`•¸·´¯) TibiaWAYPOINTS (¯`•¸·´¯) ALL WAYPOINTS ALL
Página 1 de 1 • Compartilhe •
(¯`•¸·´¯) TibiaWAYPOINTS (¯`•¸·´¯) ALL WAYPOINTS ALL
-Sea serpents with soft refiller, depositer and mana refiller AND task hunter
-Earth & Waters elementals TASKS/DEPOSITER/REFILLER/SOFTS
-heros/necros with depositer and mana refiller
-Mutated Rat's Yalahar with TASKS maker, refiller, depositer.
-Fenrock dragonlair depositer
-Liberty Bay Wyrms - SMALL SPAWN - Depositers/Refiller
-Yalahar Arena 90-110k/h Master Sorcerer 80 LVL depositer/refiller.
-Liberty Bay Earth Elementals & Nightstalkers -1 = refiller/depositer
-Darashia Dragons + sb refil + depositer + mf buyer + rare depositer
-Mutated Rats/Bat/Tigers @ Yalahar Arena MONEYMAKER!!
-Blue djins with depositer and mana refiller
-Mutated Rats/Tigers/Bats Yalahar Arena 100% AFK for PALADIN
-Barbarians Krimhorn (BIG camp+Tower)
-Okolnir South-West Mage + Depositer + Refiller (100+ / 180k/hr)
-Cave Worker Golems 100 % AFK ! REFiller 100k/h DEPOSITER ! FOR PALLYS !
-Mutated Rat Towers 100~~130k/h 100% AFK (depositer,refil,...)
-Mutated Arena 100~~125k/h 100% AFK (depositer,refil,...)
-Sea Serpents SVAR 130~~180k/h 100% AFK (depositer,refil,...)
-LB NightStalkers 90~~110k/h 100% AFK (depositer,refil,...)
-Yalahar Cults 120~~130k/h 100% AFK (depositer,refil,...)
-Giant Spider Yalahar 90~~120k/h 100% AFK (depositer,refil,...)
-Edron Dragons 70~~90k/h 100% AFK (depositer,refil,...)
-Necro/Hero Yalahar West 90~~120k/h 100% AFK (depositer,refil,...)
-Haunted Treeling Yalahar/Vengoth 100~~140k/h 100% AFK (depositer,refil,...)
-Necro Goroma (Ramoa) 90~~120k/h 100% AFK (depositer,refil,...)
-Darashia Dragons 90~~110k/h 100% AFK (depositer,refil,...)
-Dark Cathedral [ 100% AFK ]
-water elementals refiller + rox targeting.
-Full banuta's ground + towers -perfect depositer-
-Venore Orc Tower + Gold Depositer
-Malada Quara Scouts (80-150k/h)
-Edron d lair,perfect poh with depositer good items and manarestore
-yalahar cults (100k/h) profit - with everything
-LB nighstalker (80k/h) profit
-Workers golem (100-150k/h) - profit depend on luck - with everything
-Apes (60 - 80k/h) - big profit
-Yalahar Arena (90-110kh) always profitable - with everything
-Darashia Dragons (80-100kh) - profit big, with everything
-Water Elemtanls (140-160k/h) - profit
• Laguna island+depositer
• Ape -2 With Depositer
• Arena Mutated
• Barbs
• blue djinn yalahar
• Bog Raiders - All Voces
• Cemetery skels
• Chakoyas depositer 1
• Crystal spiders
• Cults Mines NW
• Cyclopolis
• Cyclops Mistrock
• Darashia dlair
• Darashia dragons
• DarkCathedral+items+dpGold (v1.1)
• Djinns Knight
• Dragon Lords Fenrock
• Dragons Yalahar
• Dragon Mage
• Dwarfs Kazzo
• Dworc Depositer - All Voces
• Edron Dragon Lair
• Edron goblins with gold and stones depositer
• Edron trolls with gold
• Frost Dragon all spawns
• Destroyers mines - ghaz
• Forbiden GS - All Voces
• Larvas Ankh - All spawns
• Forbiden Hydras
• Ice witch tower
• Nargor Pirates
• Lizard Camp
• Mammoth_Svar
• Minotaurs Yalahar (FULL) + Depositer + MPrebuyer
• Mintwallin
• Mutant Rats 2 towers
• Nightamres Yala - all Voces
• Orc Fortes - All Voces
• Port Jungle
• Port Hope Tortoise
• Port Hope Trolls
• Scarabs Ankh All Spawns
• Tarantules Port Hope
• Venore Dragon Lair - All Voces
• Rookgard 1-8 lvl Pacc
• Rookgard 1-8 lvl Facc
• Worker Golems
• Wyrms Liberty Bay
• Wyrms Darashia
• Yalahar Green Djins
• Yalahar Blue Djins
• Yalahar GS
• Yalahar Ice Witch
• Yalahar Quaras
• Calassa Quaras
• Yalahar Zombies
• War Golems
and more...
Hi all,
This is my first script released for sale which I have been working on for the last few months. Ive had the help from my trusty friend Wesker, he has gave me alot of usefull tips on various problems along the way. So now the script is now running 100% bug free, ive put the price on this script really low considering its my first script.
The script can be setup by amature neobotters with ease and im willing to provide 110% support to anyone that buys this script.
Where: Muggy plains
Vocation: Royal Paladin
Required lvl: 45+
Premmi: Yes
Exp/h: 230k/h With Bonus 170k/h Without
Profit: ALWAYS
Hotkeys: Alot
Afk: 150%
Hud: Yes
Healer: Yes
Ammo: Power Bolts
Softboots refiller: Yes
Hey, releasing a free script since I don't use it or need it!
*Level 20+ or 30+
*Atleast k-set, 32+def shield, 6+arm helm and a good sword!
*Mana refiller
*Many hotkeys
*It is a good script to make money with, I did it over a night got like 50-70k!
*Edit backpacks and manas in Hotkeys>Persitentkeys>Setup!
*Start on "StartWestBankHere" waypoint!
Hello All. Do you rly want to make a High LvL character? Get a full of loots, rares and cash? If yes it's the best thread to make it real ever you could found!
Few months ago i just started my RP, EK and ED Project. Those chars are 200 levels +
Most of the scripts are with Depositers/Refilers.
For all vocation from lvl 50~ till 250~ or more.
Over 100+ scripts for power gaming, getting money(on Hlvl chars profit even 40k/h!), quests or task makers!
The best way to see it it's testing by your own.
Only one thing you need to fallow the way like I botted:
Level 8 to level 15- Hunt at Trolls Edron/Ab'dendriel(Palys can not loot cash becouse trolls drops spears so they can hunt there without leaving the spawn).
From level 15 to level 25Hunt at Darashia Rotworms or Ankrahmun Larvas. There is a nice exp and some profit.
From level 25 to level 30(Knight) - Liberty Bay Rotworms.
[From level 25 to level 30(Paly)
- Tomb Penisula -2 with royal spear relifer.
At this moment you should have like 50k in cash botted for all those lvl-s.
Now you can buy some EQ and Promotion.
From level 30 to level 50(Knight)- Hunt on Dworcs. Remember to take some brown mushrooms on you and anty paralyze scripts.
From level 30 to level 60(Paly)- You can easly hunt on Tar Tomb After Scarab Coin. There should be some profit and like 50k/h. Till 60 lvl paly is better to get money.
From level 50 to level 80-90(Knight)- Buy better EQ and go on Port Hope Tortoises/Chakoyas/Apes/Lizards or even Barbarians.
From level 60 to level 90(Paly)- Now you should make ice island Quest and go on Helheim. There will be like 70k/h with some profit or same like Knight Barbarians/Apes/Lizards.
Level 90+From now both profesions can bot on Edron/Venore Dragon Lair. For sure to have a profit you need to have soft boots there. Exp is like 90k/1h.
Level 110+Draggons will be boring after some lvl-s. So now you can change your exp spot on Yalahar Heros/Necros or GS banuta on Paly.
From now both vocations should have Softs and Full Sets.
In the way from 1 till 200 lvl you will have some bonus cash from quests like:
-Demon Helmet Quest.
Level 130+
- Now your chars will be able to Bot on many Tibia Spots.
I will discribe about few of them.
-Frost Dragons. Exp: 110-120k/1h no profit on Knight till 150 LvL.
-Quaras. Exp: 90k/1h both voc have profit here.
-POI/Fenrock DL-s with firewalker boots. Exp: 150k/1h i think waste without big luck.
- Worker/War Golems. Exp: 100k/1h Big Profit.
Little list of 8 best Scripts from 150x included in pack:
- Yalahar Demons for Palys and Mages. Good task maker and profit.
- Vengoth Castle for all vocations. PG your char 350k-400k/h.
- Goroma Serpent Spawns.
- Hellspawns.
- Sunken.
- Spectras Inqu.
- Souleaters.
- Grims Yalahar.'
Most Popular That You can find in Pack:
Sea serpents Svar [D] [S] [T] [R]
Earth & Waters elementals [D] [S] [T] [R]
Heros/necros [D] [R] [A]
Mutated Rat's Yalahar [T] [R] [D] [A]
Fenrock DLs
Liberty Bay Wyrms [S] [R] [D]
Drefia Wyrms [S] [R] [D] [A]
Yalahar Arena [D] [R]
Liberty Bay Earth Elementals & Nightstalkers [R] [D]
Darashia Dragons [D] [S] [R] [A]
Darashia Dragon Lords [D] [S] [R]
Mutated Rats/Bat/Tigers [D] [S] [R]
Blue djins[D] [S] [R]
Barbarians Krimhorn
Okolnir South-West Mage [D] [S] [R]
Cave Worker Golems [S] [R] [D] [A]
Yalahar Cults [D] [S] [R]
Giant Spider Yalahar [D] [S] [R]
Edron Dragons [D] [S] [R]
Necro/Hero Yalahar West [D] [S] [R]
Haunted Treeling Yalahar/Vengoth [S] [R] [D] [A]
Dark Cathedral [A]
Malada Quara Scouts
Apes [S] [R] [D] [A] Big Profit
Zao/Fermine Scripts
Ghostly Dragons Hardcore
Frost Dragons Okolnir (For All Vocations) [S] [R] [D] [A]
Hydras Ank [R] [D]
Arena Mutated [S] [R] [D]
Bog Raiders - All Voces [S] [R] [D]
Crystal spiders [A]
Cyclops Mistrock [R] [D] [A]
Dragons Yalahar [R] [A]
Larvas Ankh - All spawns [R] [D] [A]
Minotaurs Yalahar [R] [D] [A]
Mutant Rats 2 towers [S] [R] [D] [A]
Nightamres Yala - all Voces [S] [R] [D] [A]
Orc Fortes - All Voces [D] [A]
Scarabs Ankh All Spawns [R] [D] [A]
Tarantules Port Hope
Venore Dragon Lair - All Voces [S] [R] [D] [A]
Rookgard 1-8 lvl Pacc
Worker Golems [S] [R] [D] [A]
Yalahar GS [S] [R] [D] [A]
Yalahar Ice Witch [A]
Yalahar Quaras
Calassa Quaras
Yalahar Zombies [S] [R] [D] [A]
War Golems [R] [D]
Travel Scripts
And MUCH MORE!
Here you will find more than 450 waypoints for you to use your TibiaBot NG waypoints encriveis with auto deposit, buy potions, and come back to hunt, until the waypoints folder contains the updated version 9.0 of the map!
All made by me, Scripter!
Thanks, and if it is spread in other forums, post the credits!
Ab'Dendriel Elf Cave -1 -2
Ab'Dendriel Slimes Cave -1
Alchemist Quarter (Yalahar)
Amazon Camp (Carlin)
Amazon Camp (Venore)
Amazon Tower (Carlin)
Ancient Ruins Tomb (Ank)
Ancient Temple Rots (Thais)
Ancient Temple Orc (Thais)
Ankrahmun Dragon Lair
Ankrahmun Library Tomb -1 -2 -3
Arena and Zoo Quarter (Yalahar)
Banuta Apes +0 (Port Hope)
Apes Caves-1 -2 (port hope)
Barbarian Settlements Big, Medium and Little(Svar)
Beregar Mines -1 -2
Calassa Quaras
Carlin Graveyard Trolls
Cemetery Quarter (Yalahar)
Chazorai (Farmine)
Chor (Port Hope)
Cult Cave (Lib Bay)
Cyclopolis -1 -2 -3 -4(Edron)
Mount Sternum Cyc and Ghouls (Thais)
Darashia Dragonlair (Only Dragons)
Darashia Dragonlair (Only DL's)
Darashia Rots -1 -2
Dark Cathedral -1(Outlaw Camp)
Dark Pyramid -1 and -2(darahsia)
Demona Warlock(North Port)
Dragonlair no dl's(venore)
Dragonlair no dl(edron)
Dragonlair cave south west(Yalahar)
Dwarfs Mines (Kazz)
Edron bog Rider
Edron rots
Edron Goblins (all floors)
Elbenvane (ab)
Elves Foreign Quarter (yalahr)
Energy Elemental Lair (darashia)
Factory Quarter (yalahar)
Farmine Mines
Femur Hills (ab -carlin)
Fibula Rots
Folda minos
Folda orcs
Folda all -1floor
Foreigner Quarter(yalahar)
Ghostland (carlin)
Goroma -1 -2
Goroma Dragons
Hero cave (edron)
Hydra Hill and Hydra Mountain (Tiquanda)
Inukaya (svar)
Isle of the Kings (carlin by boat)
Larva west and north caves (ank)
Magician Quarter (yalahar)
Medusa Cave (lib bay)´
Mintwallin (thais)
Nargor (lib bay)
Nibelor (svar)
nomad cave (ank)
oasis tomb -3(ank)´
Outlaw Camp
Peninsula tombs -3 -4(ank)
Dl's POI (Plains of havoc)
Plains of Havoc, No GS (near venore)
Plain of havoc, only GS (near venore)
Port Hope Swamp trolls
Rachazai (farmine)
Rookgaard Bear Cave
Sea Serpent Area (svar)
Shadow Tomb -1 -2 -3(ank)
Stone Tomb -1(ank)
sunken quarter (yalahar)
Swamp Troll Cave (venore)
Tarpit Tomb -1 -2 (ank)
Thais Troll Cave
Tiquanda floor 0 (port hope)
Port Hope Crocodiles
Port Hope tortoises -1 -2
Port Hope crabs
port hope water elemental cave
trade quarter (yalahar)
Venore Orc Cave
Zao Orc Land
Zao Terramite Caves
Zao Wailing Widow Cave
- Mensagens : 134
Data de inscrição : 10/03/2012
Página 1 de 1
Permissão deste fórum:Você não pode responder aos tópicos neste fórum


text:
Arsenal end trophy drought with FA Cup win
Arsenal ended its nine-year trophy drought on Saturday, coming from two goals...
San Antonio finally got its "Big Three" back
on the floor, but it was Kawhi Leonard who stole the show on Wednesday.
Leonard buried a go-ahead 3-pointer with 2.9 seconds left off a nice feed from
Tony Parker to lift the San Antonio Spurs to a 96-95 victory over the
Cleveland Cavaliers at Quicken Loans Arena.
Leonard finished with 13 points and 10 rebounds, while Parker poured in a
game-high 24 points to go with seven assists and six rebounds for the Spurs,
who head into the All-Star break on a three-game winning streak.
Parker returned after missing Monday's win with right knee soreness, while Tim
Duncan (left knee soreness) played for the first time in four games and Manu
Ginobili (left hamstring) returned from a five-game absence.
Duncan donated 13 points and six rebounds and Ginobili added five points and
six assists off the bench to help San Antonio earn its 14th win in its last 15
Dion Waiters led Cleveland with 20 points and six rebounds, while Tyler Zeller
chipped in 16 points and nine boards for the Cavs, who have lost three
straight on the heels of a three-game winning streak.

subset: commoncrawl


text:
Welcome to the Fest
Log in to check your private messages
Log in
the future fictional history of a. renard
Goto page
Sinfest Forum Index
Casual Chat
View previous topic
View next topic
Joined: 25 Jul 2006
Posts: 4087
Posted: Wed Sep 13, 2006 9:33 am
Post subject:
too easily tempted by the long seperations from his wife, renard was often found passed out in taverns, or, worse, in the rooms of certain young ladies that were not his wife.
realizing that he was not cut out for domestic life, renard never-the-less made one last attempt to patch things up. dr. thomas addis counseled the couple and recommended that each keep a diary in which they could express their negative feelings (rage, jealousy, etc.) without hurting the other. we can get a accurate picture of renard's feelings during the latter years of his marriage from his version of the journal. (helen chesterton burned hers.)
"black coffee (screw the doctor). the usual horseshit with wife. she goes to london tomorrow, three weeks ahead of schedule. I can't decide if I should be upset about that. daniel boone refuses to use the litterbox. "
"woke from a dream of airports. do I miss my wife? do I hate her, or myself for being what I am? such ridiculous human traits. can't even take my own medicine. received a card from XXX. a secret meeting at the XXX. I'd rather die. need new entertainment. daniel boone hit by a car last night."
"absurdities! helen wants to celebrate some sort of holiday. doesn't matter which one, she says. can it get any worse than this? also, this will be my last entry in this abominable diary. I can't even tell if wife is keeping one."
Last edited by rm on Wed Sep 13, 2006 10:27 am; edited 1 time in total
Back to top
Joined: 25 Jul 2006
Posts: 4087
Posted: Wed Sep 13, 2006 9:44 am
Post subject:
january, 2032. helen chesterton leaves a. renard for good. emily is six years old and chooses of her own will to live with her mother in sussex. "I'm sorry, but I do adore tennis, daddy," she tells him. renard becomes reclusive, begins work on
the blindman's dinner
march 16th, renard is arrested for disorderly conduct outside the gates of conrad evans mansion. in a statement to the arresting officer, renard pleads guilty to indecent exposure and "criminal intent" (in his own words, "I intended to scale the walls and destroy mr. evans prize begonia.")
august, renard self-excommunicates himself from the new sub-realists and creates a new group which he calls The Cult of Jimmy Woodser. select invitations are distributed, each declaring a different bar or club as the meeting place. renard stays at home that night and drinks bourbon.
for several months nothing is known of renard's doings. according to the housemaid, it is doubtful that he was even home during this time. some have speculated that a mrs. cromwell, once proprietor of the Lecoq-Gadby, was putting him up, that he slept in the inn's attic or basement, and that she fed him only her famous biscuits and bacon, per his request. though it cannot be neither verified nor entirely discounted, this sort of absurd account obviously has no basis in fact. john p. has a more likely explanation:
"renard had been writing a lot of letters to old friends. I received one in late september and was startled by its rambling, disconnected manner, which was impressive for even renard. there was no return address, but only a postal stamp listing Saint-Irénée. this did not mean much to me until later when I remembered that renard's old mistress, a peculiar girl named matilda, lived in that district."
Last edited by rm on Wed Sep 13, 2006 10:27 am; edited 1 time in total
Back to top
Joined: 25 Jul 2006
Posts: 4087
Posted: Wed Sep 13, 2006 9:54 am
Post subject:
mrs. pritchard's ruby finch
is published in the spring of 2033.
excerpt: " for the ancients considered the ruby to be an antidote to poison, to preserve persons from plague, to banish grief, to repress the ill effects of luxuries, and to divert the mind from evil thoughts, and I too was brought to a higher health, a certain cleanliness and clearness of thought I had never known before, whether it was of the body or soul or both, through the elixir of mrs. pritchard's fluttering ruby finch."
many readers of this piece have wondered why a ruby finch, is there such a thing? it is, alas, a moot point, but by examining renard's notes, we can get an idea of his thought process...
fringilla coelebs
. I see them along the quay up north. the breeding male is unmistakable, with his reddish underparts and a grey cap. I am reminded of the old man. that's disgusting. the female is drabber and greener, but still obvious. how true that can be! but really doesn't fit in this case..."
renard enters a period of alarming productivity. from the fall of 2033 to the spring of 2038, between sporadic television interviews and the occasional college lecture, renard writes the following titles:
beech tree ramblings
summer in the sudan
the mayor's widow
flagstones and maple leaves
dogs howl at death
the suck of the drain & others
(short stories)
unsolicited opinions
night-star-seas, swimming in mare insularum
movies starring myself
the tragi-comic stain
clown in a flea circus
the unintentional effect of lilli-burlero and bullen-a-la
the ridiculous mr. nick
prospero's daughters
prospero's daughters
picked up the thread of
prospero's sisters
and recounts the manner in which the duke eventually gains freedom from his needling lusts. at the conclusion he dies powerless, but happy.
its publication coincided with the birth of renard's second daughter, vera louisa renard.
Back to top
Joined: 25 Jul 2006
Posts: 4087
Posted: Wed Sep 13, 2006 10:05 am
Post subject:
there was much confusion surrounding the birth of vera louisa, and it wasn't until the child was seven months old that renard revealed the mother to be mrs. diane george, née bouche, the recently widowed heiress to the george family west african diamond empire.
officially, montgomery george died of heart failure while talking to his accountant. a friend close to the diamond magnate has a more picaresque explanation: "m.g. died of noblesse oblige."
of her daughter-in-law's attachment to a. renard, montgomery george's mother had this to say: "if my dead son's wife thinks she can spend his money to raise a bastard child by that crazed whoring phony she can kiss my ass in court."
however, the matter never went to court because this ancient woman, the only surviving member of the george clan besides diane, fell down a flight of stairs the following week. her death was ruled instantaneous and accidental. the papers had a field day.
Last edited by rm on Wed Sep 13, 2006 10:31 am; edited 1 time in total
Back to top
Joined: 25 Jul 2006
Posts: 4087
Posted: Wed Sep 13, 2006 10:07 am
Post subject:
in the autumn of '38, worn out from years of solitary writing and having reason for renewed interest in family matters, renard traveled to england for the first time to visit his daughter emily. remarried in 2035 to dr. marcus gladis, helen chesterton arranged for the couple to be in new york during this reunion. in a letter to former new sub-realist second man hank osmand, renard gave a detailed description of he and emily's three months together:
"the girl is precocious like me. I never imaged her this way. though I cannot lay much claim to her development, I feel that she is wholly a product of my influence. or, perhaps, she simply hates sussex and her new father, that doctor, in the same way I despised my own childhood.
"I have told her everything, more than I have ever said before to anyone else. the sculptor garden inscriptions 'renardo fecit', etc., the gethsemene plays with moonshine martinis and stolen olives, all those bags of wet cocaine that lucy dug up and ate, poor dog, little john and I re-envisioning ourselves as the hounds of the calpe hunt (father was wellington), the migraines and the hospitals, the flag burning, running away, the sober student years, the trial, that terrifying and absurd 'execution', the prison camp, children, paris
"little emily absorbs it all, can hardly believe a word of it, and wants nothing more than to live like daddy she hates tennis now that she has lost almost every match. the girl's mother is obsessed with it, second-rate star that she is. anyway, I believe I have planted the seed for emily to come live with me again. her only regret would be to leave those awful black birds they have here. when she is blue she sits along the road and tosses rocks at them. I have given her a copy of prospero's daughters. she can't wait to meet her half sister."
Back to top
Joined: 25 Jul 2006
Posts: 4087
Posted: Wed Sep 13, 2006 10:12 am
Post subject:
despite his hopes, emily did not come to live with renard anytime soon, and in fact the next he saw her was during a brief visit she made in the summer of 2043 before heading to the states and the university of chicago.
october, 2040. diane george dies of an apparent drug overdose in a boat off the coast of algiers. two-year-old vera louisa moves in with renard, who enlists the help of mary anschluss, long time friend and literary compatriot (
stairways to fable
, 2028;
the blue angel series
, 2030-36).
ms. anschluss in turn enlists the aid of renard in editing her latest endeavor, a long serially-published manuscript that would eventually be issued collectively under the title
the nature of the renard-anschluss relationship has long remained mysterious. only recently has ms. anschluss' private letters come to light, among which are those from the years she lived in lyon and helped raise vera louisa.
" whatever misgivings I have are washed away when I see the look in vera's eyes. she takes me for her mother, and surprisingly I do not mind it
" a. is a better friend than I have ever known him to be. I suspect that it is because he is not writing. at first his tenderness frightened me. of course, I said, he needs me. of course he is lonely. I felt it was all designed to make me stay. since when is a. renard so kind? but he did not relent and I realized that his need for me and his loneliness did not necessarily belie ulterior motives. I see that he has changed there is so much passion now
" I cannot describe how he touches me. whatever genius he possesses has taken over his heart. it is there for vera, and it is there for me
" a. has written me a poem. It is so dirty that I will not transcribe it here. I cannot stop giggling. I suppose we will go to the beach this weekend
" he is a good father, even if a bit too preoccupied with our relationship. it must be strange for him not to think of me as vera's mother, nor even as just her caretaker, but as his lover. and what do I see myself as? how long will this go on, and where will it lead?"
Back to top
Joined: 25 Jul 2006
Posts: 4087
Posted: Wed Sep 13, 2006 10:15 am
Post subject:
mary anschluss stayed with renard until his death. for twenty-four years she provided stability and serenity to a man who had known little of it. after editing
, renard all but vanished from the public eye for several years. not until vera louisa entered grade school did he entertain thoughts of writing again. it is presumed that he began draft work on his masterpiece,
st. anne's well
, in 2045.
taking renard eleven years to write, he later claimed the timing of
st. anne
was deliberate. ("only a fool rushes through a gold mine.") to assuage the pestering of his editors, renard managed to write two short works of poetry-lite during his self-imposed breaks,
the make-believe family
vera in wonderland
the latter work caused much fuss and official criticism, as it seemingly portrayed his own daughter as a kind of amoral lolita character who discovers her latent lesbianism by chasing rabbits down holes.
Back to top
Joined: 25 Jul 2006
Posts: 4087
Posted: Wed Sep 13, 2006 10:19 am
Post subject:
st. anne's well
was published in 2057 and is generally considered to be one of the greatest works of the century. when lists of this sort are made,
st. anne
is inevitably grouped with anthony's
the rabid years
and jean-marc's
fancy dress
. no irony is lost here, since renard often made it clear what his feelings for jean-marc were
"history judges him too soon. the critics swoon over his prose style but what on earth is he really talking about? if anyone knows, please inform the rest of us. or not. no one will remember his name in twenty years." - BBC interview, 2050.
editor john c. palmer on
st. anne's well
"by first embracing, then carefully dismantling archaeology, history, religion, the arts, science, mythology and characters from fiction, the protagonist of
st. anne
reveals to us the value of divine transgressions and righteous disobedience. through the character sylvan, renard exposes the sway of tradition as a mask of simple fears and a means of sublimation which must obviously fail us. 'let you not be content,' sylvan cries, 'with what is known. you can trust it less than what remains hidden.'"
Back to top
Joined: 25 Jul 2006
Posts: 4087
Posted: Wed Sep 13, 2006 10:22 am
Post subject:
**tbc. don't miss the thrilling conclusion! and thanks for reading. this is loads of fun for me.**
Back to top
Joined: 11 Jul 2006
Posts: 2581
Location: Alba Nuadh
Posted: Wed Sep 13, 2006 10:23 am
Post subject:
Thanks for the eye strain, I enjoyed the story immensely.
bi-chromaticism is the extraordinary belief that there exists only two options
each polar opposite to each other
where one is completely superior to the other.
Back to top
The Victim Here
Joined: 09 Jul 2006
Posts: 2946
Location: Wed May 05, 2004 8:27 am
Posted: Wed Sep 13, 2006 1:51 pm
Post subject:
RM, man...
...when I grow up, I wanna be like you.
Back to top
Uncle Benny
Joined: 09 Jul 2006
Posts: 8129
Posted: Wed Sep 13, 2006 6:14 pm
Post subject:
if I weren't having so much fun reading this potential biography I'd be pissing joy out of my... uh... pisser.
Back to top
Joined: 25 Jul 2006
Posts: 4087
Posted: Sun Sep 17, 2006 2:55 pm
Post subject:
g. r. sims on
st. anne's well
- "renard creates a convoluted world of metaphors, but it is his trick to imbue that world with more meaning than what the metaphors alone imply. he does this through the use of what he calls the 'active paradox.'
one such active paradox described is 'furthering faith through doubt' (sylvan) - 'faith is a neurosis that doesn't go far enough. it is too content with itself. truth is not static, and neither can be any mind that wishes to learn it. faith must be accompanied by doubt, and vice-versa. faith and doubt essentially accomplish the same thing, that is: nothing at all. separately they are immobilizing forces, but together, in struggle with one another, they combine as a creative force.'
for renard, the moment of this
creative force
is the point at which both faith and doubt become unnecessary.
sylvan goes on to describe how one paradox creates another 'the forces which give the sun its power are also drained in the giving. if it were not for it's atoms breaking apart there would be no nuclear power. but of course this is what ensures its eventual demise. in order to live it must submit to death. in turn, infinite life unfolds beneath it, because of it life which also must die because it is, but, because it is, creates yet another layer of life. without death there would only have been a single layer, or a single point, and, if you believe in god, no point in creating another.'
for many, the implication that god devised his own death (changed forms) in order to create life (god also ensures its continuing existence as the imbuing force of this matrix) is renard's single greatest contribution to modern thought.
subsequently, renard spent much of his time after publication definding his arguments.
to wit: "god didn't commit suicide. god didn't die at all, in that way. don't you people know your physics? does electricity die when you plug a light in? no, it simply becomes
Back to top
Joined: 25 Jul 2006
Posts: 4087
Posted: Tue Sep 19, 2006 12:18 pm
Post subject:
st. anne's well
was a work which transfigured all of his past work into a radically new framework. changes in renard's inner and outer life left him both haunted and yet invigorated to follow a new, ascetic life.
one of the most dramatic expressions of this change was his decision in 2059 to give away a portion of the family fortune. the money was divided between three of the largest enviromental restoration and reclaimation foundations in the world: Existion, Exxon, and Envirotents.
next, renard, mary anschluss and eleven year old vera louisa moved into a small cottage in the languedoc-roussillon region. "I will grow wax beans and milk goats if I must, but I am tired of the city and I am tired of buying my food from mrs. ferrand. she never gives me the correct change." asked if he wasn't too old to start farming, he answered, "I am going to write a treatise on the milking of goats in the languedoc-roussillon. I am going to write it in my flesh."
Back to top
Joined: 25 Jul 2006
Posts: 4087
Posted: Wed Sep 20, 2006 4:56 pm
Post subject:
life was quiet for several years. renard and mary raised vera-louisa among the simple town folks of the languedoc-roussillon. they began collecting stray cats, of which there were many. renard's personal favorites were Gray Power, Sophia, Banno, and Mistress. vera louisa was particularly fond of chickens.
april, 2063, renard has another seizure, his first in decades. two months later he has another. against his wishes, mary takes him in for evaluation. mary explains to dr. lumet that renard had often complained of being followed or shadowed by an invisible person.
from the report:
"patient knows the "shadow person" is not real, but experiences it just the same. sensory data innocuous... a "felt" phenomena. poss. neurological."
after a series of tests, dr. lumet recommends renard to the famous neuroscientist, dr. A. J. Vanderheydenat the laussane university hospital, switzerland.
as mary wrote to emily, "your father is furious with me for going behind his back, but I know something is not right and perhaps there is time yet to fix it. I don't want him to spend his last years being tormented by seizures and invisible people. he thinks he's crazy and that's fine with him, as long as no one thinks he's
crazy. dr. lumet has other ideas and your father is just being stubbern as usual."
Back to top
Display posts from previous:
All Posts
1 Day
7 Days
2 Weeks
1 Month
3 Months
6 Months
1 Year
Oldest First
Newest First
Sinfest Forum Index
Casual Chat
All times are GMT - 8 Hours
Goto page
Jump to:
Select a forum
Forum Guidelines
General Discussion
Casual Chat
post new topics in this forum
reply to topics in this forum
edit your posts in this forum
delete your posts in this forum
vote in polls in this forum
Powered by
© 2001, 2005 phpBB Group


text:
While spring and purified water are OK, do not quench your feline's thirst with mineral water. Excess minerals can, over time, promote health problems, such as feline urinary tract disease.read more
You have this sweet, cuddly bundle of joy. Just looking at him brings a smile to your face. He's so darn cute that you even forget about the early morning feedings, bathroom mishaps and random crying jags in the middle of the night.
Then, you decide to have a baby.
So, how do you make sure your newest family member and your beloved cat get along? We have tips to help make the introductions pleasant and safe for both parties.
Get your cat used to baby sounds by playing recordings or YouTube videos of crying or babbling, and turn on any noisy gadgets like ambient noise machines, swings, etc. well before the baby arrives. Try to make these experiences pleasant by petting your cat and/or giving him a treat at the same time.
Consider carrying a swaddled baby doll around the house to get the cat used to the presence of a baby, and invite over friends and family members who have babies. Always supervise any interactions between your cat and a baby, and never force it. If your cat chooses to stay away, let him, as it could be a sign that he's stressed.
5. The Initial Meeting. Once the baby is born, ask a friend or family member to take one of the newborn's used blankets or onesies from the hospital to put in your cat's crate or bed so that he can become familiar with the baby's scent. Then, when you bring your baby home, ask someone to stay outside with your baby while you go inside to greet your cat. Spend some time with him, giving him lots of love and attention, and then go outside and bring in your newest bundle of joy. Though the cat may initially run away, he will eventually come back. Allow the cat to investigate, but also set healthy boundaries. Since new babies can't control their head movements or roll over, a snuggly cat can be dangerous, and a stressed out cat may pee in the crib. So, if he is showing interest in jumping into the crib, consider getting a crib tent to keep him out.
Lisa M. Gerry is a freelance writer. Her childhood cat, Rockamundo, was named after a Kentucky Derby horse, but his ample size earned him the nickname "The Cat and Two Thirds" at the vet.
Cats reach full skeletal development when they are this old:


text:
The combination of insecticide-treated seed, Roundup Ready hybrids and planting rigs about as wide as a regulation tennis court, save time, aggravation and more than a few headaches.
Seed treated with insecticide by the companies allow farmers to plant without the mess and bother of loading granular insecticides into hopper boxes. The job goes quicker, reduces potential for exposure, and growers say control is superior.
Most are replacing cultivators with spray rigs to apply Roundup as a pre-emergent and as an over-the-top solution to most of their weed problems.
And 24-row planters allow them to take advantage of sometimes narrow weather openings to plant at the most opportune time.
Many tried seed-treated corn last year and intend to rely on the technology for the2004 crop.
"I think we'll see a big push from some of the major seed companies to offer treated seed this year," says Ronnie Lumpkins, Hunt County wheat and corn grower. "I think more of them will offer a return policy, too," he says. "I got caught several years ago with more treated seed than I could use and the company would not take it back. More are offering that option now."
Lumpkins says he'll try some Poncho-treated seed in 2004. Primary insect target is chinch bug. "I probably will not use any Bt corn yet. I don't have pressure from corn borers."
"If we had a lot of continuous corn in the area, rootworms might be a bigger threat," says Jim Swart, Texas Extension integrated pest management specialist working out of Texas A&M-Commerce. "We might need a soil insecticide for corn rootworms but seed treatments work well for chinch bugs. We don't have a single program that controls heavy populations of both."
"I do not plant corn behind corn," Lumpkins says. "I follow a corn and wheat rotation."
Jay Norman, another Hunt County farmer, also plans to try Poncho 250. "Pricing is a big factor," he says. 'It's a good product at a good price. I'm not sure it will be better than other seed treatments but control will be comparable and it's less expensive."
Swart said Poncho 1250 has better rootworm activity than the 250 but it would be a Cadillac treatment that is considerably more expensive."
Norman will watch part of his corn crop a little closer than usual. "From 20 percent to 25 percent of my acreage will be corn behind corn. The rest follows wheat." He'll plant 2,500 acres of wheat and 2,600 acres of corn for 2004. He's tried soybeans on a few acres with yields up to 45 bushels per acre on some fields but says production is inconsistent.
He says if he were planting corn four or five years straight, he'd consider Poncho 1250 or YieldGard technology with a seed treatment. "But with my rotation program, I don't think I'll need that much protection."
Norman says seed treatment proved its worth last year. "Time was the crucial factor," he says. "I was able to plant faster because I didn't have to adjust or load insecticide boxes. Also, when the corn seed sprouts the insecticide is right there. With soil insecticides, the plant roots have to go down to take in the insecticide."
He says the seed treatment also performs better under dry conditions. "Last year, I had more chinch bugs where I used a soil insecticide."
Norman believes seed technology will replace a lot of traditional chemical applications.
Butch Aycock farms corn and a little wheat in Collin County. He used Cruiser seed treatment last year and says it worked well. He'll also look at Poncho 250 for 2004. Like Norman, price will be a factor. "At around $15 a bag, that's pretty cheap protection against chinch bugs. And if we're not after rootworms, there's no reason to use a soil insecticide."
Aycock plants only 20 percent of his acreage in wheat each year so he has some fields in corn for four years without a break. "I've seen no problem with rootworms after the fourth or even the fifth year," he says.
Last year marked the first trial for a seed treatment. "Cruiser worked well and I used it on 100 percent of my acreage," he says. "Control was excellent."
He says corn is easier to plant with a seed treatment versus a soil insecticide. "It's just less hassle. The days of granular insecticides are behind us, unless they get dirt cheap and I haven't seen prices drop yet."
Jack Norman, Jay's uncle and a Grayson County corn and wheat farmer, used Counter and Prescribe seed treatment last year. "Probably two-thirds of my acreage was in Prescribe and it worked great. I didn't have problems with chinch bugs."
Jack also wonders about the opportunity to return treated seed if weather or other factors prevent planting. "I've seen companies not willing to take seed back and that can be a problem if we can't use as much as we expected."
He likes the time savings. "We can plant a lot of acres in a day using treated seed. Everything is in the planter box." That's a big advantage for him since he plans to plant close to 5,000 acres of corn.
Ben Scholz farms near McKinney, Texas, close to housing developments and industrial complexes. Seed treatments eliminate some of the hassle of pesticide application.
"Instead of granular insecticides, I'll use treated seed, Prescribe, Cruiser or Gaucho. They all worked last year. I had no problems with any of them and they all performed better than granular materials. I'll look at Poncho, too."
Scholz agrees that seed treatments are easier to use. "I just load the planter boxes, fill the fertilizer tank and go. It's also safer to use"
He says Roundup Ready technology saves time and provides good weed control. "I used Roundup Ready on all my acreage last year. We may not keep fields as clean as we once tried to but we can take out most of the problems with Roundup. But I'll compare the cost of traditional herbicides against technical fees and see which makes the most sense. I'll compare the low rate of Roundup versus herbicides and the high rate over-the-top."
He says he may be able to lower weed control costs to $5 per acre with conventional varieties and broadleaf materials.
Aycock used Roundup Ready corn on "about 25 percent of my acreage last year, on fields with higher weed pressure. I was very satisfied with the results."
He used two applications, one within 14 days of emergence and another 25 days after emergence. "Even with rhizome Johnsongrass, we got good control."
His only concern is that some conventional hybrids appear to yield better than those with the Roundup Ready gene.
Jack Norman uses Roundup WeatherMax, applied the day after planting. "When we plant corn, we usually have rain forecast every day. I spend a little extra for Roundup WeatherMax but it's not a lot considering the protection."
He uses 1 pint in 5 gallons of water. "That killed ryegrass 5 inches tall, thick and growing."
He says he may switch to a generic product in the summer but he'll stick with WeatherMax at planting. He figures cost runs about $13.25 per acre.
"We have to be careful with Roundup near non Roundup Ready corn, wheat and high value homes. We watch what we're doing. Usually, before corn comes up, the fields are clean."
Norman says he did not cultivate the first corn row last summer. "That was the first time in 35 years we haven't plowed corn. Cultivation is always a five or six-week chore and with almost 5,000 acres, we simply can't do everything as timely as we would like."
Big planting rigs also save time.
"I have a John Deere planter, and plant 24 30-inch rows," Aycock says. "That planter saves a lot of time and it allows me to get more corn in while weather is good. Planting on time is one practice that will increase yield without costing any money," he says.
During planting season Aycock and his nephew work together using two 24-row planters. "We start on fields that are ready and we keep at it until we get everything finished," he says.
Jay Norman says the bigger planter speeds his operation as well. The combination of a big planter and seed treatment allowed Jack Norman to complete planting last spring in 12 days instead of the usual 20.
Jay also will examine tillage practices. "I'm interested in strip-till planting," he says. "I'd like to get away from breaking ground and I think strip-till has a lot of potential."
Norman made only three passes across corn land last year, compared to five or six previously."
Aycock is considering narrowing rows even more. "Row width and plant population are key factors," he says. 'But I still need to study the possibilities. For one thing, costs to change equipment will be a concern. And I'm not certain spray operators will be able to stay off those narrow rows. But I have no doubt that it will work."
He's also pleased with the information he gets from yield monitors mounted on two of his combines. 'It's unbelievable what I learn," he says. "I spend a lot of time in the combine at harvest and these monitors show me things I wouldn't see with average yields. For one thing, it sometimes shows that things I thought were not working were effective."
Time, farmers say, can be their best ally or their worst enemy. Technology, including genetics, chemistry and mechanics are helping farmers in the Northeast corner of Texas get a better grip on time management and they're making better, more efficient crops in the process.


text:
by Daryl Brower
Long, long ago (2700 B.C.E., if you must be exact about these things) there lived a wise and kind Chinese empress named Lei-tzu. Being an empress, she was a relative lady of leisure and much enjoyed spending her time wandering about the palace gardens. It was her habit to take her afternoon tea under the shade of one of the many mulberry trees in the garden. One day whilst doing this, she made a most amazing discovery.
Now mulberry trees were much desired in China, both for their pleasing appearance and their medicinal value. Lei-tzu, of course, knew this. But what she didn't know (at least not then) was that mulberry leaves are also the most favorite food of Bombix mori, a creamy white moth that's better known today as the silkworm. Now if you know anything about moths of any sort, you know that Bombix mori begins life as a rather ugly worm. In this form, it feasts to the point of bursting and then spins itself into a tight little cocoon that stays settled in the tree until the moth is ready to emerge. But sometimes a too-strong breeze or rustling of branches can push a cocoon off its comfortable perch.
Illustration by Adriana Hernandez
One afternoon as Lei-tzu sat in the shade and sipped her tea, a cocoon dropped from the leaves and landed in her cup with a tiny splash. Though startled, Lei-tzu quickly regained her composure (she was an empress after all) and with as much ladylike elegance as she could muster, attempted to fish the offending matter from her cup. As she did so, she noticed a most remarkable thing. The cocoon was not a cocoon any longer, but one long, luxurious filament of silky fiber.
Now Lei-tzu was a thoughtful sort of woman, and so rather than dump out her tea in disgust, she took a closer look at the thread that now filled it. The fiber was soft with a lovely sheen to it, and Leiz-tzu thought it quite beautiful. Intrigued, she called for a servant boy and sent him scampering up the tree to find more cocoons. These she unwound in the same manner as the first, soaking them in her tea until the cocoon unraveled, and then carefully retrieving the beautiful lengths of fiber.
When several cocoons had been unwound, Lei-tzu began twisting the fibers together to see what could be made of them. She found that the twisting created a fine, soft, and surprisingly strong thread. "A fabric woven from this would make a fine robe for my husband," she thought. And so she quickly set out to find him.
Illustration by Adriana Hernandez
Lei-tzu's husband was the great emperor Huang-di, a most clever and powerful man—some say a god—who not only founded both the nation of China and Taoism (or so it is said), but also invented such marvels as the bow and arrow, the chariot, and an amazing mechanical wagon that, through a series of gears, would always point out the way south no matter which way the wheels turned.
Haung-di was equally enthralled with Le-tzu's discovery (being a shrewd soul, he quickly saw the value in producing such a fine fiber). "Wife," he said. "You have found a wonderful thing. We must put it to good use." So they taught the people of China to care for the silkworms, setting them on beds of clean straw and feeding them mulberry leaves all through the day and night. And when the cocoons were ready, Lei-tzu showed the peasants how to carefully reel the silk and weave the threads into fine and costly fabrics. For two thousand years, none but those taught by Lei-tzu knew the secrets of making silk. For many years after, Lei-tzu was known as Si Ling-chi or Lady of the Silkworm. How silk came to the rest of the world is a story for another time.


text:
Top 10 Internship Mistakes That Students Make-superrecovery
UnCategorized Obtaining an internship is an excellent way to advance one's career. Not only can students learn new skills, but they can gain valuable experience that looks very impressive on their resumes. Even more, internships help students become comfortable with how the workforce is before they actually enter it. Unfortunately, many students don't benefit from internships because they are never accepted into an internship program. Every single year, hundreds of thousands of smart and talented students find themselves struggling to get in the door. Here are the top 10 internship mistakes to avoid: 1) Not Caring Shockingly, many college students seem as if they don't really care about their careers. They act as if they don't really want an internship. Change your attitude today. Internships can become high-paying jobs. It happens all the time. 2) Procrastinating Many students who do want internships often procrastinate about finding and applying for the opportunities. This is a deadly mistake. Many programs have early deadlines. For instance, most summer internships start recruiting in the winter. Start searching and applying now. 3) Not Keeping Your Grades Up An internship is like a job. Why would a company want to hire you if your grades are bad? It is very important to keep your grades above average. Many times a 2.5 GPA or higher is sufficient. 4) Not Utilizing Your Resources Every high school has guidance counselors, and every college has a career center. You should stop by and meet these people because they are there to help you. Often, companies that are looking to hire interns will ask them for recommendations. 5) Not Devoting Enough Time You get out, what you put in. Don't just spend 5 minutes applying for internships. Try to spend at least 1-3 hours a week. Remember that you want to take the time to find the opportunities that are most relevant to you. 6) Racing Through Applications Don't fill out an application just to get it over with. Be sure to read the instructions, and give thought-provoking answers for essay questions. Also, be sure to not misspell words – especially your own name or the college you're attending. 7) Not Having Good References Many internship applications require that you list references that they can follow up with to confirm that you are a good applicant. Don't list your family members or friends. List professors or advisers that you know will vouch for you. 8) Messing Up The Interview If you are called in for an interview, be sure to treat it like a job interview. Dress neatly and appropriately, and bring copies of your resume. Show up on time, and be sure to look the interviewer in the eye when speaking. Also, shake their hand firmly before leaving. 9) Not Following Up Don't make the mistake of not following up after the interview. The week of the interview, send a brief "thank you" card to the person who interviewed you. The next week, call or email your contact to see what the status is. 10) Not Being Persistent Getting an internship requires patience and persistence. Don't give up. Keep filling out applications and submitting your resume to as many companies and organizations as possible. Remember that there are tons of opportunities available. With hard work and determination, you will eventually reach your goal. About the Author: 相关的主题文章:


text:
added PatternCaptureGroupFilterFactory
Add TypeTokenFilter coverage
|Deletions are marked like this.
|Additions are marked like this.
|Line 327:
|Line 327:
=== solr.TypeTokenFilterFactory ===
Creates `org.apache.lucene.analysis.core.TypeTokenFilter`.
Blacklists or whitelists a specified list of token types; tokens may have "type" metadata associated with them. For example, the UAX29URLEmailTokenizer emits "<URL>" and "<EMAIL>" typed tokens, as well as other types. To pull out only e-mail addresses from text as tokens, this definition will do the trick:
<fieldType name="emails" class="solr.TextField" sortMissingLast="true" omitNorms="true">
<tokenizer class="solr.UAX29URLEmailTokenizerFactory"/>
<filter class="solr.TypeTokenFilterFactory" types="email_type.txt" useWhitelist="true"/>
where the email_type.txt file contains just <EMAIL>. useWhiteList defaults to false, operates as a blacklist.
Analyzers, Tokenizers, and Token Filters
When a document is indexed, its individual fields are subject to the analyzing and tokenizing filters that can transform and normalize the data in the fields. For example — removing blank spaces, removing html code, stemming, removing a particular character and replacing it with another. At indexing time as well as at query time you may need to do some of the above or similiar operations. For example, you might perform a Soundex transformation (a type of phonic hashing) on a string to enable a search based upon the word and upon its 'sound-alikes'.
The lists below provide an overview of some of the more heavily used Tokenizers and TokenFilters provided by Solr "out of the box" along with tips/examples of using them. This list should by no means be considered the "complete" list of all Analysis classes available in Solr! In addition to new classes being added on an ongoing basis, you can load your own custom Analysis code as a Plugin.
Analyzers, per field type, are configured in the Solr Schema.
For a more complete list of what Tokenizers and TokenFilters come out of the box, please consult the Lucene javadocs and Solr javadocs for the main features. Please look at analyzer-*. There are quite a few. if you have any tips/tricks you'd like to mention about using any of these classes, please add them below.
For information about some language-specific Tokenizers and TokenFilters available in Solr, please consult LanguageAnalysis.
Note: For a good background on Lucene Analysis, it's recommended that you read the following sections in Lucene In Action:
- 1.5.3 : Analyzer
- Chapter 4.0 through 4.7 at least
Try searches for "analyzer", "token", and "stemming". (TODO: update for LIA 2.)
- Analyzers, Tokenizers, and Token Filters
- High Level Concepts
Notes On Specific Factories
- CharFilterFactories
- solr.KeywordTokenizerFactory
- solr.LetterTokenizerFactory
- solr.WhitespaceTokenizerFactory
- solr.LowerCaseTokenizerFactory
- solr.StandardTokenizerFactory
- solr.ClassicTokenizerFactory
- solr.UAX29URLEmailTokenizerFactory
- solr.PatternTokenizerFactory
- solr.PathHierarchyTokenizerFactory
- solr.ICUTokenizerFactory
- solr.ClassicFilterFactory
- solr.LowerCaseFilterFactory
- solr.TypeTokenFilterFactory
- solr.TrimFilterFactory
- solr.PatternCaptureGroupFilterFactory
- solr.PatternReplaceFilterFactory
- solr.StopFilterFactory
- solr.CommonGramsFilterFactory
- solr.EdgeNGramFilterFactory
- solr.KeepWordFilterFactory
- solr.LengthFilterFactory
- solr.WordDelimiterFilterFactory
- solr.SynonymFilterFactory
- solr.RemoveDuplicatesTokenFilterFactory
- solr.ISOLatin1AccentFilterFactory
- solr.ASCIIFoldingFilterFactory
- solr.PhoneticFilterFactory
- solr.DoubleMetaphoneFilterFactor
- solr.BeiderMorseFilterFactory
- solr.ShingleFilterFactory
- solr.PositionFilterFactory
- solr.ReversedWildcardFilterFactory
- solr.CollationKeyFilterFactory
- solr.ICUCollationKeyFilterFactory
- solr.ICUNormalizer2FilterFactory
- solr.ICUFoldingFilterFactory
- solr.ICUTransformFilterFactory
High Level Concepts
There are different types of stemming strategies. The ones supported by Lucene/Solr all use stemming by reduction, and must thus be applied on both index- and query side:
Porter is a transforming algorithm for English language that reduces any of the forms of a word such as "walks, walking, walked", to its elemental root e.g., "walk". Porter is rules based and does not need a dictionary.
KStem, an less aggressive alternative to Porter for the English language.
Snowball provides stemming for several languages, including two implementations of the Porter algorithm. Snowball is a small string processing language designed for creating stemming algorithms.
Hunspell provides stemming for all languages that have OpenOffice spellcheck dictionaries. Being dictionary based, it requires high quality and well maintained dictionaries to work well for stemming - in which case it may give more precise stemming than the Snowball algorithms.
A related technology to stemming is lemmatization, which allows for "stemming" by expansion, taking a root word and 'expanding' it to all of its various forms. Lemmatization can be used either at insertion time or at query time. Lucene/Solr does not have built-in support for lemmatization but it can be simulated by using your own dictionaries and the SynonymFilterFactory
See LanguageAnalysis for details about stemming for various languages.
A repeated question is "how can I have the original term contribute more to the score than the stemmed version"? In Solr 4.3, the KeywordRepeatFilterFactory has been added to assist this functionality. This filter emits two tokens for each input token, one of them is marked with the Keyword attribute. Stemmers that respect keyword attributes will pass through the token so marked without change. So the effect of this filter would be to index both the original word and the stemmed version. The 4 stemmers listed above all respect the keyword attribute.
For terms that are not changed by stemming, this will result in duplicate, identical tokens in the document. This can be alleviated by adding the RemoveDuplicatesTokenFilterFactory.
<fieldType name="text_keyword" class="solr.TextField" positionIncrementGap="100"> <analyzer> <tokenizer class="solr.WhitespaceTokenizerFactory"/> <filter class="solr.KeywordRepeatFilter"/> <filter class="solr.PorterStemFilterFactory"/> <filter class="solr.RemoveDuplicatesTokenFilterFactory"/> </analyzer> </fieldType>
Analyzers are components that pre-process input text at index time and/or at search time. It's important to use the same or similar analyzers that process text in a compatible manner at index and query time. For example, if an indexing analyzer lowercases words, then the query analyzer should do the same to enable finding the indexed words.
On wildcard and fuzzy searches, no text analysis is performed on the search word.
Most Solr users define custom Analyzers for their text field types consisting of zero or more Char Filter Factories, one Tokenizer Factory, and zero or more Token Filter Factories; but it is also possible to configure a field type to use a concrete Analyzer implementation
The Solr web admin interface may be used to show the results of text analysis, and even the results after each analysis phase when a configuration based analyzer is used.
Char Filters
Char Filter is a component that pre-processes input characters (consuming and producing a character stream) that can add, change, or remove characters while preserving character position information.
Char Filters can be chained.
A Tokenizer splits a stream of characters (from each individual field value) into a series of tokens.
There can be only one Tokenizer in each Analyzer.
Token Filters
Tokens produced by the Tokenizer are passed through a series of Token Filters that add, change, or remove tokens. The field is then indexed by the resulting token stream.
Specifying an Analyzer in the schema
A Solr schema.xml file allows two methods for specifying the way a text field is analyzed. (Normally only field types of solr.TextField will have Analyzers explicitly specified in the schema):
Specifying the class name of an Analyzer — This can be anything extending org.apache.lucene.analysis.Analyzer which has either a default constructor, or a single argument constructor taking in a lucene "Version" object
<fieldtype name="nametext" class="solr.TextField"> <analyzer class="org.apache.lucene.analysis.WhitespaceAnalyzer"/> </fieldtype>
Specifying a TokenizerFactory followed by a list of optional TokenFilterFactories that are applied in the listed order. Factories that can create the tokenizers or token filters are used to prepare configuration for the tokenizer or filter and avoid the overhead of creation via reflection.
<fieldtype name="text" class="solr.TextField"> <analyzer> <charFilter class="solr.HTMLStripCharFilterFactory"/> <charFilter class="solr.MappingCharFilterFactory" mapping="mapping-ISOLatin1Accent.txt"/> <tokenizer class="solr.StandardTokenizerFactory"/> <filter class="solr.LowerCaseFilterFactory"/> <filter class="solr.StopFilterFactory"/> <filter class="solr.PorterStemFilterFactory"/> </analyzer> </fieldtype>
Any Analyzer, CharFilterFactory, TokenizerFactory, or TokenFilterFactory may be specified using its full class name with package -- just make sure they are in Solr's classpath when you start your appserver. Classes in the org.apache.solr.analysis.* package can be referenced using the short alias solr.*.
If you want to use custom CharFilters, Tokenizers or TokenFilters, you'll need to write a very simple factory that subclasses BaseTokenizerFactory or BaseTokenFilterFactory, something like this...
public class MyCustomFilterFactory extends BaseTokenFilterFactory { public TokenStream create(TokenStream input) { return new MyCustomFilter(input); } }
As of Solr 4.0 BaseTokenFilterFactory has been renamed to TokenFilterFactory and moved to the package org.apache.lucene.analysis.util.
When To use a CharFilter vs a TokenFilter
There are several pairs of CharFilters and TokenFilters that have related (ie: MappingCharFilter and ASCIIFoldingFilter) or nearly identical functionality (ie: PatternReplaceCharFilterFactory and PatternReplaceFilterFactory) and it may not always be obvious which is the best choice.
The ultimate decision depends largely on what Tokenizer you are using, and whether you need to "out smart" it by preprocessing the stream of characters.
For example, maybe you have a tokenizer such as StandardTokenizer and you are pretty happy with how it works overall, but you want to customize how some specific characters behave.
In such a situation you could modify the rules and re-build your own tokenizer with javacc, but perhaps its easier to simply map some of the characters before tokenization with a CharFilter.
Notes On Specific Factories
Creates org.apache.lucene.analysis.MappingCharFilter.
Creates org.apache.solr.analysis.PatternReplaceCharFilter. Applies a regex pattern to string in char stream, replacing match occurances with the specified replacement string.
<charFilter class="solr.PatternReplaceCharFilterFactory" pattern="([^a-z])" replacement=""/>
Creates org.apache.solr.analysis.HTMLStripCharFilter. HTMLStripCharFilter strips HTML from the input stream and passes the result to either CharFilter or Tokenizer. Like other CharFilters, it's specified using a <charFilter> tag, and must come before the <tokenizer>. An example:
<analyzer> <charFilter class="solr.HTMLStripCharFilterFactory"/> <tokenizer class="solr.StandardTokenizerFactory"/> </analyzer>
HTML stripping features:
- The input need not be an HTML document as only constructs that look like HTML will be removed.
- Removes HTML/XML tags while keeping the content
- Attributes within tags are also removed, and attribute quoting is optional.
Removes XML processing instructions: <?foo bar?>
- Removes XML comments
Removes XML elements starting with <! and ending with >
Removes contents of '); --></script>
if a<b then print a;
if a<b then print a;
hello
a<b A Alpha&Omega O
a "http://example.com/I-am+example?Text=-Hello"
Creates org.apache.lucene.analysis.LetterTokenizer.
Creates tokens consisting of strings of contiguous letters. Any non-letter characters will be discarded.
Example: "I can't" ==> "I", "can", "t"
Creates org.apache.lucene.analysis.WhitespaceTokenizer.
Creates tokens of characters separated by splitting on whitespace.
Creates org.apache.lucene.analysis.LowerCaseTokenizer.
Creates tokens by lowercasing all letters and dropping non-letters.
Example: "I can't" ==> "i", "can", "t"
Creates org.apache.lucene.analysis.standard.StandardTokenizer.
A good general purpose tokenizer that strips many extraneous characters and sets token types to meaningful values. Token types are only useful for subsequent token filters that are type-aware of the same token types. There aren't any filters that use StandardTokenizer's types.
Solr Version
Some token types are number, alphanumeric, email, acronym, URL, etc. —
Word boundary rules from Unicode standard annex UAX#29
default value
Solr3.1 -- SOLR-2188
Creates org.apache.lucene.analysis.standard.ClassicTokenizer.
This tokenizer preserves StandardTokenizer's behavior pre-Solr 3.1: A good general purpose tokenizer that strips many extraneous characters and sets token types to meaningful values. Token types are only useful for subsequent token filters that are type-aware and use the same types. The ClassicFilter (Formerly known as StandardFilter) is currently the only Lucene filter that utilizes these token types.
Some token types are number, alphanumeric, email, acronym, URL, etc. —
Example: "I.B.M. cat's can't" ==> ACRONYM: "I.B.M.", APOSTROPHE:"cat's", APOSTROPHE:"can't"
default value
Solr3.1 -- SOLR-2188
Creates org.apache.lucene.analysis.standard.UAX29URLEmailTokenizer.
Like StandardTokenizer, this tokenizer implements the word boundary rules from Unicode standard annex UAX#29. In addition, this tokenizer recognizes: full URLs using the file:://, http(s)://, and ftp:// schemes; hostnames with a registered TLD (top level domain, e.g. ".com"); IPv4 and IPv6 addresses; and e-mail addresses.
In addition to the token types output by StandardTokenizer from Solr3.1 onward, UAX29URLEmailTokenizer can also output <URL> and <EMAIL> token types.
Example: "Visit http://accarol.com/contact.htm?from=external&a=10 or e-mail firstname.lastname@example.com"
==> ALPHANUM:"Visit", URL:"http://accarol.com/contact.htm?from=external&a=10", ALPHANUM:"or", ALPHANUM:"e-mail" EMAIL:"email@example.com"
default value
Solr3.1 -- SOLR-2188
Breaks text at the specified regular expression pattern.
For example, you have a list of terms, delimited by a semicolon and zero or more spaces: mice; kittens; dogs.
<fieldType name="semicolonDelimited" class="solr.TextField"> <analyzer> <tokenizer class="solr.PatternTokenizerFactory" pattern=";\s*" /> </analyzer> </fieldType>
See the javadoc for details.
Solr3.1 Outputs file path hierarchies as synonyms.
Input String
Output Tokens
Position Inc
<fieldType name="text_path" class="solr.TextField" positionIncrementGap="100"> <analyzer> <tokenizer class="solr.PathHierarchyTokenizerFactory" delimiter="\" replace="/"/> </analyzer> </fieldType>
From Solr 3.2, it also supports reverse and skip parameters.
Solr3.1 Uses ICU's text bounds capabilities to tokenize text.
This tokenizer first identifies the writing system "Script" for runs of text within the document. Then, it tokenizes the text according to rules or dictionaries depending upon the writing system. For example, if it encounters Thai, it will apply dictionary-based segmentation to split the Thai text (Thai uses no spaces between words).
Input String
Output Tokens
Script Attribute
Testing บริษัทชื่อ נאסק"ר
<fieldType name="text_icu" class="solr.TextField" autoGeneratePhraseQueries="false"> <analyzer> <tokenizer class="solr.ICUTokenizerFactory"/> </analyzer> </fieldType>
Note: to use this tokenizer, see solr/contrib/analysis-extras/README.txt for instructions on which jars you need to add to your SOLR_HOME/lib
Creates org.apache.lucene.analysis.standard.ClassicFilter.
Removes dots from acronyms and 's from the end of tokens. Works only on typed tokens produced by ClassicTokenizer or equivalent.
Example of ClassicTokenizer followed by ClassicFilter:
"I.B.M. cat's can't" ==> "IBM", "cat", "can't"
Creates org.apache.lucene.analysis.LowerCaseFilter.
Lowercases the letters in each token. Leaves non-letter tokens alone.
Example: "I.B.M.", "Solr" ==> "i.b.m.", "solr".
Creates org.apache.lucene.analysis.core.TypeTokenFilter.
Blacklists or whitelists a specified list of token types; tokens may have "type" metadata associated with them. For example, the UAX29URLEmailTokenizer emits "<URL>" and "<EMAIL>" typed tokens, as well as other types. To pull out only e-mail addresses from text as tokens, this definition will do the trick:
<fieldType name="emails" class="solr.TextField" sortMissingLast="true" omitNorms="true"> <analyzer> <tokenizer class="solr.UAX29URLEmailTokenizerFactory"/> <filter class="solr.TypeTokenFilterFactory" types="email_type.txt" useWhitelist="true"/> </analyzer> </fieldType>
where the email_type.txt file contains just <EMAIL>. useWhiteList defaults to false, operates as a blacklist.
Creates org.apache.solr.analysis.TrimFilter.
Trims whitespace at either end of a token.
Example: " Kittens! ", "Duck" ==> "Kittens!", "Duck".
Optionally, the "updateOffsets" attribute will update the start and end position offsets.
Emits tokens for each capture group in a regular expression
For example, the following definition will tokenize the input text of "http://www.foo.com/index" into "http://www.foo.com" and "www.foo.com".
<fieldType name="url_base" class="solr.TextField" positionIncrementGap="100"> <analyzer> <tokenizer class="solr.KeywordTokenizerFactory"> <filter class="solr.PatternCaptureGroupTokenFilter" pattern="(https?://([a-zA-Z\-_0-9.]+))" preserve_original="false"> </analyzer> </fieldType>
If none of the patterns match, or if preserve_original is true, the original token will also be emitted.
Like the PatternReplaceCharFilterFactory, but operates post-tokenization. See "When to use a Char Filter vs. a Token Filter" above.
Creates org.apache.lucene.analysis.StopFilter.
Discards common words.
A customized stop word list may be specified with the "words" attribute in the schema. Optionally, the "ignoreCase" attribute may be used to ignore the case of tokens when comparing to the stopword list.
<fieldtype name="teststop" class="solr.TextField"> <analyzer> <tokenizer class="solr.LowerCaseTokenizerFactory"/> <filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true"/> </analyzer> </fieldtype>
The default English stop words are in the following list. This is the format of file referenced in the "words" attribute for this filter:
#Standard english stop words taken from Lucene's StopAnalyzer a an and are as at be but by for if in into is it no not of on or s such t that the their then there these they this to was will with
Creates org.apache.solr.analysis.CommonGramsFilter. Solr1.4
Makes shingles (i.e. the_cat) by combining common tokens (usually the same as the stop words list) and regular tokens. CommonGramsFilter is useful for issuing phrase queries (i.e. "the cat") that contain stop words. Normally phrases containing stop words would not match their intended target and instead, the query "the cat" would match all documents containing "cat", which can be undesirable behavior. Phrase query slop (eg, "the cat"~2) will not function as intended because common grams are indexed as shingled tokens that are adjacent to each other (i.e. the_cat is indexed as a single term). The CommonGramsQueryFilter converts the phrase query "the cat" into the single term query the_cat.
A customized common word list may be specified with the "words" attribute in the schema. Optionally, the "ignoreCase" attribute may be used to ignore the case of tokens when comparing to the common words list.
<fieldtype name="testcommongrams" class="solr.TextField"> <analyzer> <tokenizer class="solr.LowerCaseTokenizerFactory"/> <filter class="solr.CommonGramsFilterFactory" words="stopwords.txt" ignoreCase="true"/> </analyzer> </fieldtype>
Creates org.apache.solr.analysis.EdgeNGramTokenFilter.
By default, create n-grams from the beginning edge of a input token.
With the configuration below the string value Nigerian gets broken down to the following terms
Nigerian => "ni", "nig", "nige", "niger", "nigeri", "nigeria", "nigeria", "nigerian"
By default, minGramSize is 1, maxGramSize is 1 and side is "front". You can also set side to "back" to generate the ngrams from right to left.
minGramSize - the minimum number of characters to start with. For example, minGramSize=4 would mean that a word like Apache => "Apac", "Apach", "Apache" would be the 3 tokens output.
This FilterFactory is very useful in matching prefix substrings (or suffix substrings if side="back") of particular terms in the index during query time. Edge n-gram analysis can be performed at either index or query time (or both), but typically it is more useful, as shown in this example, to generate the n-grams at index time with all of the n-grams indexed at the same position. At query time the query term can be matched directly without any n-gram analysis. Unlike wildcards, n-gram query terms can be used within quoted phrases.
<fieldType name="text_general_edge_ngram" class="solr.TextField" positionIncrementGap="100"> <analyzer type="index"> <tokenizer class="solr.LowerCaseTokenizerFactory"/> <filter class="solr.EdgeNGramFilterFactory" minGramSize="2" maxGramSize="15" side="front"/> </analyzer> <analyzer type="query"> <tokenizer class="solr.LowerCaseTokenizerFactory"/> </analyzer> </fieldType>
Creates org.apache.solr.analysis.KeepWordFilter. Solr1.3
Keep words on a list. This is the inverse behavior of StopFilterFactory. The word file format is identical.
<fieldtype name="testkeep" class="solr.TextField"> <analyzer> <filter class="solr.KeepWordFilterFactory" words="keepwords.txt" ignoreCase="true"/> </analyzer> </fieldtype>
Creates solr.LengthFilter.
Filters out those tokens *not* having length min through max inclusive.
<fieldtype name="lengthfilt" class="solr.TextField"> <analyzer> <tokenizer class="solr.WhitespaceTokenizerFactory"/> <filter class="solr.LengthFilterFactory" min="2" max="5" /> </analyzer> </fieldtype>
Creates solr.analysis.WordDelimiterFilter.
Splits words into subwords and performs optional transformations on subword groups. By default, words are split into subwords with the following rules:
- split on intra-word delimiters (all non alpha-numeric characters).
"Wi-Fi" -> "Wi", "Fi"
- split on case transitions (can be turned off - see splitOnCaseChange parameter)
"PowerShot" -> "Power", "Shot"
- split on letter-number transitions (can be turned off - see splitOnNumerics parameter)
- leading and trailing intra-word delimiters on each subword are ignored
"//hello---there, 'dude'" -> "hello", "there", "dude"
- trailing "'s" are removed for each subword (can be turned off - see stemEnglishPossessive parameter)
"O'Neil's" -> "O", "Neil"
- Note: this step isn't performed in a separate filter because of possible subword combinations.
Splitting is affected by the following parameters:
splitOnCaseChange="1" causes lowercase => uppercase transitions to generate a new part [Solr 1.3]:
"PowerShot" => "Power" "Shot"
"TransAM" => "Trans" "AM"
- default is true ("1"); set to 0 to turn off
splitOnNumerics="1" causes alphabet => number transitions to generate a new part [Solr 1.3]:
"j2se" => "j" "2" "se"
- default is true ("1"); set to 0 to turn off
stemEnglishPossessive="1" causes trailing "'s" to be removed for each subword.
"Doug's" => "Doug"
- default is true ("1"); set to 0 to turn off
Note that this is the default behaviour in all released versions of Solr.
There are also a number of parameters that affect what tokens are present in the final output and if subwords are combined:
generateWordParts="1" causes parts of words to be generated:
"PowerShot" => "Power" "Shot" (if splitOnCaseChange=1)
"Power-Shot" => "Power" "Shot"
- default is 1
generateNumberParts="1" causes number subwords to be generated:
"500-42" => "500" "42"
- default is 1
catenateWords="1" causes maximum runs of word parts to be catenated:
"wi-fi" => "wifi"
- default is 0
catenateNumbers="1" causes maximum runs of number parts to be catenated:
"500-42" => "50042"
- default is 0
catenateAll="1" causes all subword parts to be catenated:
"wi-fi-4000" => "wifi4000"
- default is 0
preserveOriginal="1" causes the original token to be indexed without modifications (in addition to the tokens produced due to other options)
- default is 0
protected="protwords.txt" specifies a text file containing a list of words that should be protected and passed through unchanged.
- default is empty (no protected words)
types="wdfftypes.txt" allows customized tokenization for this filter. The file should exist in the solr/conf directory, and entries are of the form (without quotes) "% => ALPHA" or "\u002C => DIGIT". Allowable types are: LOWER, UPPER, ALPHA, DIGIT, ALPHANUM, SUBWORD_DELIM. [Solr3.1]
- See SOLR-2059,
These parameters may be combined in any way.
- Example of generateWordParts="1" and catenateWords="1":
"PowerShot" -> 0:"Power", 1:"Shot" 1:"PowerShot"
(where 0,1,1 are token positions)
"A's+B's&C's" -> 0:"A", 1:"B", 2:"C", 2:"ABC"
"Super-Duper-XL500-42-AutoCoder!" -> 0:"Super", 1:"Duper", 2:"XL", 2:"SuperDuperXL", 3:"500" 4:"42", 5:"Auto", 6:"Coder", 6:"AutoCoder"
One use for WordDelimiterFilter is to help match words with different delimiters. One way of doing so is to specify generateWordParts="1" catenateWords="1" in the analyzer used for indexing, and generateWordParts="1" in the analyzer used for querying. Given that the current StandardTokenizer immediately removes many intra-word delimiters, it is recommended that this filter be used after a tokenizer that leaves them in place (such as WhitespaceTokenizer).
<fieldtype name="subword" class="solr.TextField"> <analyzer type="query"> <tokenizer class="solr.WhitespaceTokenizerFactory"/> <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" preserveOriginal="1" /> <filter class="solr.LowerCaseFilterFactory"/> <filter class="solr.StopFilterFactory"/> <filter class="solr.PorterStemFilterFactory"/> </analyzer> <analyzer type="index"> <tokenizer class="solr.WhitespaceTokenizerFactory"/> <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" preserveOriginal="1" /> <filter class="solr.LowerCaseFilterFactory"/> <filter class="solr.StopFilterFactory"/> <filter class="solr.PorterStemFilterFactory"/> </analyzer> </fieldtype>
In some cases you might want to adjust how WordDelimiterFilter splits on a per-character basis. To do this, you can supply a configuration file with the "types" attribute that specifies custom character categories. An example file is in subversion here. This is especially useful to add "hashtag or currency" searches.
Creates SynonymFilter.
Matches strings of tokens and replaces them with other strings of tokens.
The synonyms parameter names an external file defining the synonyms.
If ignoreCase is true, matching will lowercase before checking equality.
If expand is true, a synonym will be expanded to all equivalent synonyms. If it is false, all equivalent synonyms will be reduced to the first in the list.
The optional tokenizerFactory parameter names a tokenizer factory class to analyze synonyms (see https://issues.apache.org/jira/browse/SOLR-319), which can help with the synonym+stemming problem described in http://search-lucene.com/m/hg9ri2mDvGk1 .
Example usage in schema:
<fieldtype name="syn" class="solr.TextField"> <analyzer> <tokenizer class="solr.WhitespaceTokenizerFactory"/> <filter class="solr.SynonymFilterFactory" synonyms="syn.txt" ignoreCase="true" expand="false"/> </analyzer> </fieldtype>
Synonym file format:
# blank lines and lines starting with pound are comments. #Explicit mappings match any token sequence on the LHS of "=>" #and replace with all alternatives on the RHS. These types of mappings #ignore the expand parameter in the schema. #Examples: i-pod, i pod => ipod, sea biscuit, sea biscit => seabiscuit #Equivalent synonyms may be separated with commas and give #no explicit mapping. In this case the mapping behavior will #be taken from the expand parameter in the schema. This allows #the same synonym file to be used in different synonym handling strategies. #Examples: ipod, i-pod, i pod foozball , foosball universe , cosmos # If expand==true, "ipod, i-pod, i pod" is equivalent to the explicit mapping: ipod, i-pod, i pod => ipod, i-pod, i pod # If expand==false, "ipod, i-pod, i pod" is equivalent to the explicit mapping: ipod, i-pod, i pod => ipod #multiple synonym mapping entries are merged. foo => foo bar foo => baz #is equivalent to foo => foo bar, baz
Keep in mind that while the SynonymFilter will happily work with synonyms containing multiple words (ie: "sea biscuit, sea biscit, seabiscuit") The recommended approach for dealing with synonyms like this, is to expand the synonym when indexing. This is because there are two potential issues that can arrise at query time:
The Lucene QueryParser tokenizes on white space before giving any text to the Analyzer, so if a person searches for the words sea biscit the analyzer will be given the words "sea" and "biscit" seperately, and will not know that they match a synonym.
Phrase searching (ie: "sea biscit") will cause the QueryParser to pass the entire string to the analyzer, but if the SynonymFilter is configured to expand the synonyms, then when the QueryParser gets the resulting list of tokens back from the Analyzer, it will construct a MultiPhraseQuery that will not have the desired effect. This is because of the limited mechanism available for the Analyzer to indicate that two terms occupy the same position: there is no way to indicate that a "phrase" occupies the same position as a term. For our example the resulting MultiPhraseQuery would be "(sea | sea | seabiscuit) (biscuit | biscit)" which would not match the simple case of "seabiscuit" occuring in a document
Even when you aren't worried about multi-word synonyms, idf differences still make index time synonyms a good idea. Consider the following scenario:
An index with a "text" field, which at query time uses the SynonymFilter with the synonym TV, Televesion and expand="true"
- Many thousands of documents containing the term "text:TV"
- A few hundred documents containing the term "text:Television"
A query for text:TV will expand into (text:TV text:Television) and the lower docFreq for text:Television will give the documents that match "Television" a much higher score then docs that match "TV" comparably -- which may be somewhat counter intuitive to the client. Index time expansion (or reduction) will result in the same idf for all documents regardless of which term the original text contained.
Creates org.apache.solr.analysis.RemoveDuplicatesTokenFilter.
Filters out any tokens which are at the same logical position in the tokenstream as a previous token with the same text. This situation can arise from a number of situations depending on what the "up stream" token filters are -- notably when stemming synonyms with similar roots. It is usefull to remove the duplicates to prevent idf inflation at index time, or tf inflation (in a MultiPhraseQuery) at query time.
Creates org.apache.lucene.analysis.ISOLatin1AccentFilter.
Replaces accented characters in the ISO Latin 1 character set (ISO-8859-1) by their unaccented equivalent. Note that this is deprecated in favor of !ASCIIFoldingFilterFactory.
Creates org.apache.lucene.analysis.ASCIIFoldingFilter.
Converts alphabetic, numeric, and symbolic Unicode characters which are not in the first 127 ASCII characters (the "Basic Latin" Unicode block) into their ASCII equivalents, if one exists.
<filter class="solr.ASCIIFoldingFilterFactory"/>
See the ASCIIFoldingFilter Javadocs for more details.
Creates org.apache.solr.analysis.PhoneticFilter.
Uses commons codec to generate phonetically similar tokens. This currently supports five methods.
one of: DoubleMetaphone, Metaphone, Soundex, RefinedSoundex, Caverphone Solr3.1
true/false -- true will add tokens to the stream, false will replace the existing token
integer -- sets the maximum length of the code to be generated. Supported only for Metaphone and DoubleMetaphone encodings
<filter class="solr.PhoneticFilterFactory" encoder="DoubleMetaphone" inject="true"/>
Creates org.apache.solr.analysis.DoubleMetaphoneFilter.
The advantage over PhoneticFilter is that this supports secondary Metaphone tokens.
<filter class="solr.DoubleMetaphoneFilterFactory" inject="true" maxCodeLength="4"/>
Creates org.apache.solr.analysis.BeiderMorsePhoneticFilter.
Uses commons codec to generate phonetically similar tokens that are optimized for surnames that sound alike but have different spellings. This is especially useful for Central European and Eastern European surnames. For example, one can use this filter factory to find documents that contain the surname "Kracovsky" when the original search term was "Crakowski", or vice versa. For more information, check out the paper about Beider-Morse Phonetic Matching (BMPM) at http://stevemorse.org/phonetics/bmpm.htm.
<filter class="solr.BeiderMorseFilterFactory" nameType="GENERIC" ruleType="APPROX" concat="true" languageSet="auto"/>
Creates org.apache.lucene.analysis.shingle.ShingleFilter.
A ShingleFilter constructs shingles (token n-grams) from a token stream. In other words, it creates combinations of tokens as a single token.
For example, the sentence "please divide this sentence into shingles" might be tokenized into shingles "please divide", "divide this", "this sentence", "sentence into", and "into shingles".
default value
" "
<filter class="solr.ShingleFilterFactory" maxShingleSize="2" outputUnigrams="true"/>
Creates org.apache.lucene.analysis.position.PositionFilter.
A PositionFilter manipulates the position of tokens in the stream.
Set the positionIncrement of all tokens to the "positionIncrement", except the first return token which retains its original positionIncrement value.
default 0
<filter class="solr.PositionFilterFactory" />
PositionFilter can be used with a query Analyzer to prevent expensive Phrase and MultiPhraseQueries. When QueryParser parses a query, it first divides text on whitespace, and then Analyzes each whitespace token. Some TokenStreams such as StandardTokenizer or WordDelimiterFilter may divide one of these whitespace-separate tokens into multiple tokens.
The QueryParser will turn "multiple tokens" into a Phrase or MultiPhraseQuery, but "multiple tokens at the same position with only a position count of 1" is treated as a special case. You can use PositionFilter at the end of your QueryAnalyzer to force any subsequent tokens after the first one to have a position increment of zero, to trigger this case.
For example, by default a query of "Wi-Fi" with StandardTokenizer will create a PhraseQuery:
field:"Wi Fi"
If you instead wrap the StandardTokenizer with PositionFilter, the "Fi" will have a position increment of zero, creating a BooleanQuery:
field:Wi field:Fi
Another example is when exact matching hits are wanted for _any_ shingle within the query. (This was done at http://sesam.no to replace three proprietary 'FAST Query-Matching servers' with two open sourced Solr indexes, background reading in sesat and on the mailing list). It was needed that in the query all words and shingles to be placed at the same position, so that all shingles to be treated as synonyms of each other.
With only the ShingleFilter the shingles generated are synonyms only to the first term in each shingle group. For example the query "abcd efgh ijkl" results in a query like:
- ("abcd" "abcd efgh" "abcd efgh ijkl") ("efgh" efgh ijkl") ("ijkl")
where "abcd efgh" and "abcd efgh ijkl" are synonyms of "abcd", and "efgh ijkl" is a synonym of "efgh".
ShingleFilter does not offer a way to alter this behaviour.
Using the PositionFilter in combination makes it possible to make all shingles synonyms of each other. Such a configuration could look like:
<fieldType name="shingleString" class="solr.TextField" positionIncrementGap="100" omitNorms="true"> <analyzer type="index"> <tokenizer class="solr.KeywordTokenizerFactory"/> </analyzer> <analyzer type="query"> <tokenizer class="solr.WhitespaceTokenizerFactory"/> <filter class="solr.ShingleFilterFactory" outputUnigrams="true" outputUnigramIfNoNgram="true" maxShingleSize="99"/> <filter class="solr.PositionFilterFactory" /> </analyzer> </fieldType>
A filter that reverses tokens to provide faster leading wildcard and prefix queries. Add this filter to the index analyzer, but not the query analyzer. The standard Solr query parser (SolrQuerySyntax) will use this to reverse wildcard and prefix queries to improve performance (for example, translating myfield:*foo into myfield:oof*). To avoid collisions and false matches, reversed tokens are indexed with a prefix that should not otherwise appear in indexed text.
See the javadoc for more details, or the example schema.
A filter that lets one specify:
- A system collator associated with a locale, or
- A collator based on custom rules
This can be used for changing sort order for non-english languages as well as to modify the collation sequence for certain languages. You must use the same CollationKeyFilter at both index-time and query-time for correct results. Also, the JVM vendor, version (including patch version) of the slave should be exactly same as the master (or indexer) for consistent results.
Also see
This filter works like CollationKeyFilterFactory, except it uses ICU for collation. This makes smaller and faster sort keys, and it supports more locales. See UnicodeCollation for some more information, the same concepts apply.
The only configuration difference is that locales should be specified to this filter with RFC 3066 locale IDs.
<fieldType name="icu_sort_en" class="solr.TextField"> <analyzer> <tokenizer class="solr.KeywordTokenizerFactory"/> <filter class="solr.ICUCollationKeyFilterFactory" locale="en" strength="primary"/> </analyzer> </fieldType>
Note: to use this filter, see solr/contrib/analysis-extras/README.txt for instructions on which jars you need to add to your SOLR_HOME/lib
This filter normalizes text to a Unicode Normalization Form.
<fieldType name="normalized" class="solr.TextField"> <analyzer> <tokenizer class="solr.StandardTokenizerFactory"/> <filter class="solr.ICUNormalizer2FilterFactory" name="nfkc_cf" mode="compose"/> </analyzer> </fieldType>
These are the supported normalization forms:
NFC: name="nfc" mode="compose" NFD: name="nfc" mode="decompose" NFKC: name="nfkc" mode="compose" NFKD: name="nfkc" mode="decompose" NFKC_Casefold: name="nfkc_cf" mode="compose"
NFKC_Casefold (nfkc_cf) means applying the Unicode Case-Folding algorithm in conjunction with NFKC normalization. Unicode Case-Folding is more than lowercasing, e.g. it handles cases like ß/SS. Behind the scenes this is its own form (nfkc_cf), but both algorithms have been recursively computed across all of Unicode offline, so that its an efficient single-pass algorithm. For practical purposes this means you can use this factory with nfkc_cf as a better substitute for the combined behavior of LowerCaseFilter and NFKC normalization.
If you want to do more advanced normalization (e.g. apply a filter to work only on a subset of Unicode), see the javadocs.
Note: to use this filter, see solr/contrib/analysis-extras/README.txt for instructions on which jars you need to add to your SOLR_HOME/lib
This filter is a custom unicode normalization form that applies the foldings specified in UTR#30 in addition to NFKC_Casefold.
<fieldType name="folded" class="solr.TextField"> <analyzer> <tokenizer class="solr.StandardTokenizerFactory"/> <filter class="solr.ICUFoldingFilterFactory"/> </analyzer> </fieldType>
This means NFKC normalization, Unicode case folding, and search term folding (removing accents, etc) have been recursively computed across all of Unicode offline, so that its an efficient single-pass through the string. For practical purposes this means you can use this factory as a better substitute for the combined behavior of ASCIIFoldingFilter, LowerCaseFilter, and ICUNormalizer2Filter
Note: to use this filter, see solr/contrib/analysis-extras/README.txt for instructions on which jars you need to add to your SOLR_HOME/lib
This filter applies ICU Transforms to text.
Currently the filter only supports System transforms (or compounds consisting of), and custom rulesets are not yet supported.
<fieldType name="transformed" class="solr.TextField"> <analyzer> <tokenizer class="solr.StandardTokenizerFactory"/> <filter class="solr.ICUTransformFilterFactory" id="Traditional-Simplified"/> </analyzer> </fieldType>
You can see a list of the supported System transforms by going to this link, clicking the drop-down, and scrolling down to System.
Note: to use this filter, see solr/contrib/analysis-extras/README.txt for instructions on which jars you need to add to your SOLR_HOME/lib


text:
Beaumont/Port Arthur
The McFaddin-Ward House is hosting an evening of holiday cheer Dec. 20 — "Eggnog Thursday." Join the fun and get into the holiday spirit with this chance to see the historic home with halls bedecked with festive decorations in celebration of Christmas. Tasty treats and delicious eggnog will be served in the visitor's center of the museum, and attendees can take advantage of a self-guided tour. The community is invited to attend from 5 to 7 p.m. The event is free and open to the public.
While we harbor no disrespect for the Wall Street Journal who called us "that scrappy little paper from Southeast Texas," we prefer to think of ourselves as simple seekers of the truth. We're of the opinion that headlines and sound bites never tell the whole story. Our readers demand all the facts, facets and flavors of every story or event. And, they expect to be informed, educated and stirred to action.
For this week's New York Times crossword puzzle, pick up a copy of this week's The Examiner on newsstands now.